มาตรฐานการเข้ารหัสสำหรับ WordPress [Guide]
เหตุผลที่เรามีมาตรฐานการเข้ารหัสเลย (ไม่ใช่แค่สำหรับ WordPress) คือ สร้างสภาพแวดล้อมที่คุ้นเคยสำหรับโปรแกรมเมอร์ ทำงานในโครงการ WordPress โดยเฉพาะอย่างยิ่งบนโลกไซเบอร์ที่หลากหลายของผลิตภัณฑ์ จากคอร์ไปจนถึงธีมและปลั๊กอินมีอะไรให้ดูมากมายและหลายอย่างที่ต้องสับสน.
หากทุกคนจัดรูปแบบรหัสของพวกเขาด้วยวิธีเดียวกันใช้ความคิดเห็นรูปแบบของเอกสารและอื่น ๆ การทำงานร่วมกันกลายเป็นเรื่องที่ง่ายขึ้นและเส้นโค้งการเรียนรู้ของการเข้าร่วมโครงการใหม่จะไม่สูงชัน.
ความจำเป็นในการทำงานร่วมกันใน WordPress นั้นได้รับการขยายโดยสถานะที่เป็น codebase WordPress ไม่ปฏิบัติตามแนวทางเชิงวัตถุที่เข้มงวดและไม่ได้ใช้รูปแบบ MVC โครงการที่ปฏิบัติตามแนวทาง OOP และ MVC โดยไม่มีข้อยกเว้น (เช่น Laravel) มีความสอดคล้องและแนวปฏิบัติที่ดีที่สุด “อบใน” เนื่องจากโครงสร้างของพวกเขา.
WordPress เป็นที่น่าเสียดายสำหรับการทำสปาเก็ตตี้ ทำสิ่งที่คุณต้องการ. แนวทางปฏิบัติที่ดีที่สุดนั้นยากที่จะบังคับใช้เพียงเพราะผลิตภัณฑ์ที่ใช้รหัสไม่ดีอาจใช้งานได้เช่นกัน (บนพื้นผิว).
โดยทำตามมาตรฐานการเข้ารหัสของ WordPress คุณสามารถเรียนรู้เล็กน้อยเกี่ยวกับการเข้ารหัสร๊อคของ WordPress สร้างผลิตภัณฑ์ที่เข้ากันได้กับ WordPress มากขึ้น แสดงคอมมิวนิตี้ที่คุณสนใจและคุณถกเถียงรหัสคุณภาพสูง.
เพิ่มเติมเกี่ยวกับ Hongkiat.com:
- 10 ฝันร้ายที่เลวร้ายที่สุดสำหรับนักพัฒนาเว็บ
- 5 เหตุผลที่ทำไม CSS อาจเป็นภาษาที่ยากที่สุดของทั้งหมด
- 30 โปรแกรมเมอร์ปฏิกิริยาตอบสนองทั่วไปเกิดขึ้นเมื่อสิ่งต่างๆผิดไป
หมายเหตุบางประการเกี่ยวกับมาตรฐาน
มาตรฐานไม่ได้นิยามสิ่งที่ถูกและผิด. คุณอาจไม่เห็นด้วยกับกฎยกตัวอย่างเช่นควรใช้เครื่องมือจัดฟันแม้จะไม่จำเป็นต้องใช้เครื่องมือจัดฟันก็ตาม วัตถุประสงค์ของมาตรฐานการเข้ารหัสของ WordPress นั้นไม่ได้เป็นการตัดสินใจว่าคุณถูกหรือผิด แต่จะต้องตัดสินใจว่าควรจะทำอย่างไรใน WordPress.
มาตรฐานไม่ได้ขึ้นอยู่กับการถกเถียง. การใช้มาตรฐานไม่ใช่สถานที่ที่จะยืนหยัดต่อต้านสไตล์การเยื้องที่คุณไม่ชอบ หากสิ่งที่อยู่ในมาตรฐานการเข้ารหัสแล้วทำอย่างนั้น นักพัฒนา WordPress จะรักคุณ! ที่กล่าวว่าหากคุณไม่เห็นด้วยกับสิ่งที่อยู่ในนั้นจะเพิ่มเสียงของคุณและให้คนรู้ เป็นไปได้เสมอที่จะทำสิ่งต่าง ๆ ได้ดีขึ้น แต่คุณควรเปลี่ยนรูปแบบการเข้ารหัสของคุณหากมาตรฐานอนุญาตเท่านั้น.
ความมั่นคงมากกว่าการตอบโต้ทางทวารหนัก. หากคุณอยู่ในช่วง 10% สุดท้ายของโครงการของคุณและคุณเพิ่งค้นพบว่าคุณใช้แบบแผนการตั้งชื่อไม่ถูกต้องสำหรับชั้นเรียนอย่าสลับกลางคัน ในความเห็นส่วนตัวของฉันฉันอยากจะอ่านสิ่งที่ไม่ถูกต้องสม่ำเสมอมากกว่าสิ่งที่บางครั้งก็ถูกต้องและบางครั้งก็ไม่ คุณสามารถเขียนสคริปต์เพื่อเปลี่ยนแปลงสิ่งต่าง ๆ ได้ในครั้งเดียวหรืออ่านโค้ดของคุณในตอนท้าย.
มาตรฐานต่อไปนี้เป็นเรื่องยาก! การวางรั้งในบรรทัดเดียวกับฟังก์ชั่นแทนบรรทัดด้านล่างนั้นค่อนข้างง่ายแม้ว่าคุณจะเคยกดปุ่ม Enter มาก่อน อย่างไรก็ตามเมื่อคุณต้องคิดกฎเล็ก ๆ ประมาณ 100 กระบวนการทั้งหมดจะเกิดข้อผิดพลาดเล็กน้อย แม้จะมีท่าทางที่ยากลำบากของฉันในการปฏิบัติตามมาตรฐานฉันมีความผิดเหมือนกับคนอื่น ๆ ในการทำผิดพลาด ในตอนท้ายของวันการเยื้องที่ไม่ถูกต้องไม่ได้เป็นบาปที่เอาคืนไม่ได้ พยายามอย่างดีที่สุดเพื่อปฏิบัติตามกฎทั้งหมดคุณจะได้เรียนรู้ทุกอย่างในเวลา.
WordPress มาตรฐานการเข้ารหัส
ตอนนี้ WordPress มีคำแนะนำสี่คู่มือสำหรับแต่ละภาษาหลักที่ใช้: PHP, HTML, Javascript และ CSS พวกเขาเป็นส่วนหนึ่งขององค์ความรู้ที่มีขนาดใหญ่ขึ้น Core Core Handbook การผ่านทุกอย่างจะใช้เวลาสักครู่ดังนั้นฉันจึงไฮไลต์ตัวอย่างบางส่วนจากสี่ภาษาที่ฉันเห็นบ่อย ๆ ว่าคนผิด.
PHP
PHP เป็นภาษาหลักของ WordPress และเป็นภาษาที่พิมพ์ค่อนข้างหลวมซึ่งทำให้สุกสำหรับการควบคุม.
รั้งสไตล์
เครื่องมือจัดฟันเริ่มต้นควรอยู่ที่ท้ายบรรทัดเสมอ ควรวางข้อความที่เกี่ยวข้องในบรรทัดเดียวกันกับวงเล็บปิดก่อนหน้า นี่คือตัวอย่างที่ดีที่สุดที่แสดงให้เห็น:
ถ้า (เงื่อนไข) // Do Something elseif (condition) // Do Something else // Do Something
การใช้พื้นที่กว้างขวาง
ฉันไม่ใช่แฟนตัวยงของโค้ด (ฉันมีสายตาไม่ดี) ดังนั้นนี่จึงเป็นสิ่งที่ฉันต้องการบังคับใช้โดยเฉพาะ ใส่ช่องว่างหลังจาก จุลภาค, และทั้งสองด้านของ ตรรกะ, การเปรียบเทียบ, เชือก และ ผู้ประกอบการที่ได้รับมอบหมาย, หลังจาก ถ้า, elseif, สำหรับ, แต่ละ และ สวิตซ์ งบและอื่น ๆ.
ง่ายกว่าที่จะบอกว่าไม่ควรเพิ่มช่องว่าง! ครั้งเดียวที่คุณไม่ควรเพิ่มช่องว่างคือเมื่อ Typecasting หรือ อาร์เรย์อ้างอิง.
ข้อยกเว้นที่ค่อนข้างสับสนสำหรับข้อยกเว้นคืออาร์เรย์ที่ คีย์อาร์เรย์เป็นตัวแปร, ในกรณีนี้ใช้ช่องว่าง ตัวอย่างนี้ควรทำให้ชัดเจน:
ฟังก์ชัน my_function ($ complete_array = null, $ key_1 = 4, $ key_2 = 'bar') ถ้า (null == $ complete_array) $ final_array = $ complete_array; else $ key_1 = (จำนวนเต็ม) $ key_1; $ final_array [0] = 'นี่'; $ final_array [$ key_1] = 'คือ'; $ final_array [$ key_2] = 'an'; $ final_array ['last'] = 'ตัวอย่าง'; ส่งคืน $ final_array;
อนุสัญญาการตั้งชื่อ
อันนี้ยากที่จะคุ้นเคยโดยเฉพาะอย่างยิ่งถ้าคุณมาจากสภาพแวดล้อมที่แตกต่างกัน โดยสังเขป:
- ชื่อตัวแปร ควรจะเป็น ตัวพิมพ์เล็กทั้งหมด, คำคั่นด้วยเครื่องหมายขีดล่าง
- ชื่อคลาส ควรใช้ คำตัวพิมพ์ใหญ่ คั่นด้วยเครื่องหมายขีดล่าง. คำย่อ ควรจะเป็นทั้งหมด ตัวพิมพ์ใหญ่
- ค่าคงที่ ควรจะเป็น ตัวพิมพ์ใหญ่ทั้งหมด, spearated โดยขีดเส้นใต้
- ชื่อไฟล์ ควรจะเป็น ตัวพิมพ์เล็กทั้งหมด, คั่นด้วยเครื่องหมายขีดกลาง
เงื่อนไขโยดา
การเขียนเงื่อนไขในลักษณะอื่น ๆ ที่คุณคุ้นเคยจะป้องกันข้อผิดพลาดในการแยกวิเคราะห์ มันดูแปลก ๆ แต่มันก็เป็นโค้ดที่ดีกว่า.
if ('Daniel' === $ name) echo 'เขียนบทความคุณจะ';
HTML
HTML ไม่ได้มีกฎมากมายที่เกี่ยวข้องกับมันฉันสามารถสร้างสิ่งต่าง ๆ ได้มากกว่านี้ มีกฎเพียงห้าข้อเท่านั้นที่คุณต้องรู้เมื่อเขียน HTML:
- รหัสของคุณจะต้องตรวจสอบกับ W3C validator.
- แท็ก HTML ที่ปิดตัวเองจะต้องมีที่ว่างหนึ่งช่องก่อนหน้าเครื่องหมายทับ (นี่คือสิ่งที่ฉันเกลียดเป็นการส่วนตัว แต่เป็นข้อมูลจำเพาะของ W3C ไม่ใช่แค่ WordPress Pet peeve)
- คุณสมบัติและแท็กจะต้องเป็นตัวพิมพ์เล็กทั้งหมด ข้อยกเว้นเพียงอย่างเดียวคือเมื่อค่าแอตทริบิวต์มีความหมายสำหรับการบริโภคของมนุษย์ในกรณีที่พวกเขาควรจะพิมพ์ตามธรรมชาติ.
- คุณลักษณะทั้งหมดจะต้องมีค่าและจะต้องยกมา (เขียน
ไม่ถูกต้อง)
- การเยื้องควรทำได้โดยใช้แท็บและควรเป็นไปตามโครงสร้างเชิงตรรกะ.
CSS
CSS เป็นอีกภาษาที่พิมพ์อย่างหลวม ๆ ดังนั้นจึงมีงานให้ทำมากมายที่นี่เช่นกัน ถึงกระนั้นมาตรฐานก็ค่อนข้างง่ายสำหรับผู้เขียนโค้ด.
selectors
ตัวเลือกควรมีคุณสมบัติตามที่จำเป็นสามารถอ่านได้อย่างมนุษย์ปุถุชนเป็นตัวพิมพ์เล็กทั้งหมดที่มีคำคั่นด้วยเครื่องหมายขีดกลางและตัวเลือกคุณลักษณะควรใช้เครื่องหมายคำพูดคู่ นี่คือตัวอย่างย่อ:
อินพุต [type = "text"], อินพุต [type = "รหัสผ่าน"], .name-field background: # f1f1f1;
คำสั่งซื้ออสังหาริมทรัพย์
มาตรฐานยอมรับความต้องการพื้นที่ส่วนบุคคลบางอย่างที่นี่เนื่องจากไม่ได้กำหนดคำสั่งเฉพาะสำหรับกฎ CSS สิ่งที่พวกเขา ทำ พูดคือคุณควรปฏิบัติตามโครงสร้างความหมายที่ มีเหตุผล. จัดกลุ่มคุณสมบัติตามความสัมพันธ์หรือจัดกลุ่มตามลำดับตัวอักษร, อย่าเขียนมันออกมาแบบสุ่ม.
สาเหตุที่ใหญ่ที่สุดสำหรับการสุ่มคือ “โอ้ฉันต้องเพิ่มระยะขอบด้วย” จากนั้นดำเนินการเพิ่มเข้าไปที่ด้านล่าง ใช้เวลาเพิ่มเป็นพิเศษ 0.3 วินาทีและเพิ่มกฎในตำแหน่งโลจิคัล.
- แสดง
- การวางตำแหน่ง
- โมเดลกล่อง
- สีและตัวอักษร
- อื่น ๆ
.profile-modal display: block; position: absolute; ซ้าย: 100px; ด้านบน: 90px; พื้นหลัง: # ff9900; สี: #fff;
การจัดรูปแบบค่า
นี่เป็นสถานที่แห่งหนึ่งที่ฉันเกลียดการเห็นความไม่ลงรอยกันเป็นพิเศษ หากคุณไม่ปฏิบัติตามคำแนะนำก็ยังดีกว่าบางครั้งการเห็นช่องว่างก่อนค่า; บางครั้งใช้ชวเลขบางครั้งไม่; บางครั้งใช้หน่วยในค่า 0 บางครั้งไม่ ฯลฯ.
การจัดรูปแบบค่าค่อนข้างซับซ้อน แต่ มันเกิดขึ้นเองตามธรรมชาติด้วยการฝึกฝน. ดูคู่มือที่แน่นอนใน Codex สำหรับการจัดรูปแบบค่าของคุณ.
จาวาสคริ
จากประสบการณ์ของฉัน Javascript มีแนวโน้มมากที่สุดที่จะไปทุกที่ ในขณะที่นักพัฒนาหลายคนรู้จาวาสคริปต์เป็นจำนวนมาก แต่ก็มีการเรียนรู้อย่างค่อยเป็นค่อยไปตามมาด้วย HTML, CSS และ PHP เมื่อคุณเพิ่งเริ่มต้นด้วยภาษาใหม่ที่คุณทำผิดพลาดมากขึ้นและหากความผิดพลาดเหล่านั้นไม่ก่อให้เกิดข้อผิดพลาดร้ายแรงพวกเขาจะกลายเป็นฝังแน่นในคุณ.
ในหลายกรณีมาตรฐานอ้างถึงขีด จำกัด บรรทัดหรือรัฐ “หากบรรทัดไม่ยาวเกินไป”. สิ่งนี้อ้างถึง jQuery Style Guide ซึ่งเรียกเก็บ ขีด จำกัด 100 อักขระบนบรรทัด. คู่มือ WordPress ขึ้นอยู่กับคู่มือ jQuery ดังนั้นจึงเป็นความคิดที่ดีที่จะให้อ่านเช่นกัน.
อัฒภาค
นี่เป็นกฎที่ง่ายที่สุด แต่เป็นกฎที่มักถูกมองข้าม ไม่เว้นเซมิโคลอนเพียงเพราะรหัสของคุณจะทำงานโดยปราศจากมัน มันเป็นเพียงเลอะเทอะ.
เยื้อง
ควรใช้แท็บสำหรับเยื้องเสมอ คุณควรเยื้องเนื้อหาของการปิดแม้ว่าเนื้อหาของไฟล์ทั้งหมดมีอยู่ในหนึ่ง ฉันไม่แน่ใจว่าทำไม แต่การปิดบัญชีระดับบนสุดที่ไม่ได้จดสิทธิบัตรทำให้ฉันรู้สึกอึดอัดแม้กระทั่งก่อนที่ฉันจะอ่านมาตรฐาน.
ทำลายเส้น
เมื่อแบ่งสตริงที่มีความยาวให้แบ่งบรรทัดหลังโอเปอเรเตอร์เสมอ, อย่าปล่อยให้ตัวแปรแขวนอยู่. สิ่งนี้ทำให้เห็นได้อย่างชัดเจนในครั้งแรกว่าเส้นนั้นแตกและคุณยังไม่ลืมเซมิโคลอน.
นอกจากนี้หากเงื่อนไขยาวแบ่งเป็นหลายบรรทัดและเพิ่มแท็บพิเศษก่อน อันนี้ดูแปลกตามาก แต่การแยกมันเพิ่มระหว่างสภาพและร่างกายเห็นได้ชัดมาก.
if (firstCondition () && SecondCondition () && thirdCondition ()) var html = 'บรรทัดนี้ประกอบด้วยคำว่า' + n + 'ดังนั้นจึงควรถูกแยกหลังจาก' + 'ผู้ดำเนินการ';
jQuery วนซ้ำ
ตามมาตรฐานซ้ำ jQuery (jQuery.each ())
ควรใช้กับวัตถุ jQuery เท่านั้น คุณควรใช้พื้นฐาน สำหรับ, สำหรับใน, ในขณะที่ วนซ้ำใน Javascript สำหรับวนซ้ำคอลเลกชันอื่น ๆ.
ข้อสรุป
มีจำนวนมากที่ต้องทราบและติดตามและไม่มีวิธีที่ใครบางคนสามารถใช้ทั้งหมดนี้ได้ในครั้งเดียว คุณควรใช้รหัสของคุณให้ใกล้เคียงที่สุดเท่าที่จะทำได้ตามมาตรฐาน.
ในความเห็นของฉัน ความสอดคล้องเป็นกฎที่สำคัญที่สุด. มันจะดีกว่าที่จะทำสิ่งที่ไม่ถูกต้องอย่างต่อเนื่องมากกว่าที่จะสลับครึ่งทาง สิ่งนี้เป็นจริงอย่างยิ่งกับแนวทางการจัดรูปแบบเนื่องจากสิ่งเหล่านี้จะไม่ส่งผลกระทบต่อการทำงานของรหัสของคุณและส่วนใหญ่ - สามารถเปลี่ยนเป็นชุดได้อย่างง่ายดายในภายหลัง.
คุณเกลียดองค์ประกอบของมาตรฐานการเข้ารหัสคุณคิดว่าควรเพิ่มบางสิ่งหรือไม่? แจ้งให้เราทราบในความคิดเห็น!