PHP, HTML, Javascript และการเขียนแนวปฏิบัติที่ดี


10

ฉันรู้ว่าฉันต้องเขียนข้อกำหนดการประชุมเกี่ยวกับการเข้ารหัส HTML, JavaScript และ PHP สำหรับฉันและทีมของฉัน

ในการพัฒนาเว็บไซต์เช่นเดียวกับใน C ++ ฉันเป็นแฟนของการเยื้องและความคิดเห็น

อย่างไรก็ตามในการทำงานของฉันฉันพบรหัส HTML + JavaScript + PHP ซึ่งทำให้ปวดหัว

ฉันกำลังพยายามทำให้โค้ดอ่าน แต่สิ่งที่ดูเหมือนจะดีกว่าสำหรับฉัน (เพื่อเยื้อง & ความคิดเห็น) ดูเหมือนจะไม่ทำให้เพื่อนร่วมทีมหลงเสน่ห์ดังนั้นฉันจึงสงสัยว่ามีวิธีปฏิบัติที่ดีที่ดีที่สุด "เอกสารเหมือนกับหน้าเว็บของทุกวันนี้ซึ่งวันต่อวันมีความซับซ้อนมากขึ้นเรื่อย ๆ

ฉันตระหนักถึงความจริงที่ว่าเป็นไปได้ว่ารหัสของหน้าเว็บทุกวันนี้มีความซับซ้อนเล็กน้อย แต่ฉันสงสัยว่าการประชุมที่ดีเกี่ยวกับแง่มุมเหล่านี้มีอยู่แล้วหรือไม่

คำตอบ:


19

กฎทั่วไปบางข้อที่ฉันปฏิบัติตาม:

ทั่วไป

  • ย่อหน้ามี 4 ช่องว่าง
  • เยื้องระดับใหม่
  • ความคิดเห็นคือ <~ 80 ตัวอักษรจากระดับการเยื้อง ถ้าฉันอยู่ในสองระดับ (8 ช่องว่าง) นั่นหมายความว่าเคอร์เซอร์หยุดจะอยู่ที่ประมาณ 88 ตัวอักษร
  • ใช้ความคิดเห็นแบบหลายบรรทัด ฉันชอบดู แต่นี้เป็นอัตนัยจุด
  • แสดงความคิดเห็นทันทีหลังจากนั้นเมื่อคุณไม่รู้ว่าเกิดอะไรขึ้น
  • Allman วงเล็บสไตล์ มันสะอาดและอ่านง่ายกว่า อัตนัย

JavaScript

  • ใช้ห้องสมุด โดยเฉพาะอย่างยิ่ง jQuery นั้นดีมาก มันกำจัดอาการปวดหัวข้ามเบราว์เซอร์ทั้งหมด
  • เข้าใจว่า ID นั้นมีไว้สำหรับองค์ประกอบเฉพาะคลาสสำหรับสไตล์ ID ไม่ควรใช้มากกว่าหนึ่งครั้งต่อหน้าและจะมี hooks ติดอยู่กับพวกเขา ใช้คลาสสำหรับสิ่งต่าง ๆ เช่นการนำทาง
  • ออกมาเป็นวิธีการ มันเป็นการดึงดูดให้ใส่รหัสทั้งหมดลงในการbindโทรอย่างไรก็ตามการใส่มันลงไปในฟังก์ชั่นของตัวเองจะเพิ่มความยืดหยุ่นให้กับโค้ดของคุณ
  • ใช้ฟังก์ชั่นแทน evals นั่นหมายถึงsetTimeout(function(){ /* Do something */ }, 1000);แทนที่จะsetTimeout('doSomething', 1000);
  • varใช้ตัวแปรท้องถิ่นด้วย

HTML

  • มาร์กอัปความหมาย ใช้แท็กที่เหมาะสม อย่าใส่<br />ในที่นั่นเพื่อเพิ่มพื้นที่ปรับระยะขอบและกฎ CSS
  • แท็กทั้งหมดจะเป็นตัวพิมพ์เล็ก
  • แท็กทั้งหมดควรจะจบลงด้วยการแท็กปิดหรือปิดตัวเอง
  • ใช้คลาสสำหรับโครงร่างที่คล้ายกัน มีคู่ของชั้นเรียนที่กำหนดไว้ล่วงหน้าชอบhide, clear, errorฯลฯ
  • ทุกอย่าง (สคริปต์รวม) <head>ควรจะไปใน กังวลเกี่ยวกับการปรับให้เหมาะสม (เคลื่อนย้ายสิ่งของรอบ ๆ ) เมื่อมีปัญหา
  • สไตล์ชีทภายนอกและแหล่งที่มาของ JavaScript เป็นสิ่งที่จำเป็นเว้นแต่จะระบุไว้เฉพาะหน้า

PHP

  • กรอบงานดีฉันแนะนำ CodeIgniter
  • หากคุณไม่ต้องการใช้เฟรมเวิร์กให้ลองใช้ PHP เวอร์ชันล่าสุดที่เป็นไปได้ (นั่นหมายถึง 5.3)
  • ใช้includesเพื่อประโยชน์ของคุณ
  • ล้างการฉีดหรือใช้งบเตรียม
  • ดำเนินการหากตรวจสอบค่าที่ปลอดภัยที่ล้มเหลวก่อนกำหนด

    $logged_in = false;
    if(check_user($user))
    {
         $logged_in = true;
         $user = load_user($_SESSION);
    }
  • รู้ความแตกต่างระหว่างคำพูดเดียวและสองคำ ใช้เครื่องหมายคำพูดเดี่ยวหากเป็นไปได้
  • อย่าสะท้อน HTML

4
รายการที่ยอดเยี่ยม สำหรับ PHP ฉันจะเพิ่ม 1) ใช้เทมเพลตอย่าผสม php & html (ในแอปพลิเคชันอย่างน้อย) 2) อย่าใช้รวมถึง () ในขณะที่เรียกใช้ฟังก์ชั่น 3) เก็บโค้ดให้มากที่สุดนอกขอบเขตทั่วโลก
GrandmasterB

ใครก็ตามที่แนะนำ CodeIgniter และ jQuery สูญเสียความซื่อสัตย์ในสายตาของฉัน
mefisto

4
@teresko: คุณประณามโดยไม่ให้เหตุผลหรือทางเลือกใด ๆ
Josh K

+1 รายการของคะแนนที่ถกเถียงกันได้และเป็นที่ถกเถียงกัน แต่รายการที่ดีงามอย่างไรก็ตาม
haylem

jQuery ช่วยขจัดทุกอาการปวดหัวข้ามเบราว์เซอร์?
James Adam

3

มีบางคนอ่านเพื่อเป็นแรงบันดาลใจ:

  • Zend Framework - สไตล์การเขียนโค้ด php : รายการวิธีปฏิบัติวิธีการเขียนโค้ด php ที่สามารถบำรุงรักษาได้ (การจัดรูปแบบไฟล์ PHP, แบบแผนการตั้งชื่อ, สไตล์การเข้ารหัส: อาร์เรย์, สตริง, คลาส, วิธีการเป็นต้น)
  • Google - คู่มือสไตล์โค้ด : รายการวิธีปฏิบัติวิธีการเขียนโค้ดจาวาสคริปต์ที่บำรุงรักษาได้ (กฎ: Constans, Semicolons, ฟังก์ชันซ้อนกัน ... , รูปแบบการเข้ารหัส: การตั้งชื่อ, ขอบเขต, สตริง, ฟิลด์การมองเห็น ฯลฯ )

คุณจะอธิบายเพิ่มเติมเกี่ยวกับแหล่งข้อมูลเหล่านี้และทำไมคุณแนะนำสิ่งเหล่านี้เมื่อตอบคำถามที่ถาม "เชื่อมโยงเท่านั้นคำตอบ"ไม่ได้ค่อนข้างต้อนรับที่กองแลกเปลี่ยน
ริ้น

1
@gnat แก้ไข / ตอบที่ถูกต้อง
tomascejka

2

แยก 3 ออกจากกัน โค้ดที่รักษาได้น้อยที่สุดที่ฉันจัดการด้วยเสมอคือเมื่อมี PHP บางตัวที่สะท้อน HTML & JavaScript จำนวนมากซึ่งอาจเป็นเพราะ SQL บางอันถูกโยนทิ้งไปเพื่อการวัดที่ดี

การแยกพวกเขาทั้งหมดออกจากกันจะทำให้รหัสนั้นง่ายต่อการบำรุงรักษามากขึ้นและทำให้สิ่งต่าง ๆ มีความคล่องตัวมากขึ้นถ้าคุณมีคนทำงานในส่วนต่าง ๆ ของแอปพลิเคชันเช่นผู้ออกแบบที่ต้องการทำงานกับ HTML / CSS เท่านั้น


2

วิธีที่ง่ายที่สุดในการเขียนโค้ดเว็บแอป PHP คือการรวมทุกอย่างเข้าด้วยกันอย่างแน่นอน อย่างไรก็ตามคุณจบด้วยความยุ่งเหยิงอย่างรวดเร็วหากคุณทำสิ่งที่เป็นเช่นนั้น

นี่คือแนวทางปฏิบัติที่ดีบางประการ:

1) ใส่ JavaScript ของคุณใน <head> ของเอกสาร (หรือยังดีกว่าในไฟล์แยกต่างหากที่อ้างอิงในส่วนหัว) เรียนรู้วิธีผูกมัดผู้ฟังเหตุการณ์ใน document.onload เหตุการณ์แทนที่จะกระจายผ่าน html ของคุณ (ยังดีกว่าเรียนรู้การใช้เฟรมเวิร์กอย่าง Jquery มันจะทำให้ JavaScript ของคุณสวยขึ้นมาก)

2) ค้นหารูปแบบการออกแบบเช่น MVC คุณต้องการแยกตรรกะทางธุรกิจของคุณที่เขียนใน PHP ออกจาก HTML ของคุณให้มากที่สุด เป็นการดีที่สุดที่คุณจะใช้ภาษาเทมเพลตที่ดีในการรวบรวมหน้า HTML ของคุณ อย่างน้อยที่สุด PHP ใน HTML ของคุณควรเป็นแบบสั้น - ส่วนใหญ่เรียกตัวแปรและวนซ้ำผ่านรายการที่สร้างขึ้นที่อื่น

3) ความคิดเห็นเยื้อง ... สิ่งนั้นเป็นเพียงแนวทางปฏิบัติที่ดีที่สุดในการตั้งโปรแกรมพื้นฐาน ฉันมักจะปล่อยให้ความยาวบรรทัดของฉันสูงกว่า 80 ตัวอักษรเมื่อฉันเขียน HTML เพียงเพราะภาษานั้นช่างพูดมาก แต่นั่นก็เป็นเรื่องเกี่ยวกับการฝึกฝนแบบดั้งเดิมเพียงอย่างเดียวที่คุณควรปล่อยให้สไลด์ - ถ้าคนอื่น ๆ ในทีมเลอะเทอะ พวกเขาต้องดูดมันและทำให้รูปร่างดีขึ้น


ความคิดเห็นที่ดี! มีการพิมพ์ผิด: "ใส่ JavaScript ของคุณในเอกสาร"
DL

อ๊ะ ขอบคุณ. (ลืมเข้ารหัสด้วยวงเล็บเหลี่ยม Silly me.)
Patch

1
Javascript ควรไปที่ส่วนท้ายของหน้าเพื่อเหตุผลด้านประสิทธิภาพ
Toby

0

นี่เป็นเกร็ดความรู้สองสามข้อ:

Javascript: ใช้varเมื่อเริ่มต้นตัวแปร

HTML: รวมสคริปต์ที่ด้านล่างของไฟล์เพื่อให้โหลดล่าสุด

PHP: แยกไฟล์ออกเป็นส่วน ๆ อย่าใส่คลาสทั้งหมดของคุณไว้ในไฟล์เดียวเช่นเดียวกับที่คุณไม่ได้อยู่ในการพัฒนา C ++ ปกติ แสดงความคิดเห็นให้มากที่สุดและเขียนวัตถุประสงค์ของฟังก์ชั่น / คลาสของคุณ


ฉันพยายามติดตามคู่มือสไตล์ Javascript ของ Google: google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml
Fosco
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.