ทำไมคุณต้องการ Code Sniffers สำหรับการพัฒนาเว็บ
การปรับให้เหมาะสมของโค้ดนั้นเทียบได้กับขั้นตอนการแก้ไขของการเขียน ก่อนอื่นคุณอาจต้องทำให้ความคิดของคุณตกอยู่ในโค้ด แต่โค้ดของคุณควรได้รับการปรับปรุงด้วยเครื่องมือเช่น ดมกลิ่นรหัส เพื่อผลิตผลิตภัณฑ์ที่ดีที่สุด.
การดมกลิ่นรหัสเป็นคำที่อธิบาย การตรวจสอบรหัสเพื่อให้สอดคล้องกับมาตรฐานกฎระเบียบ. กฎระเบียบเหล่านี้อาจระบุจำนวนช่องว่างที่จะใช้สำหรับการเยื้องการจัดวางเครื่องหมายปีกกาหรือวิธีการตั้งชื่อตัวแปร มาตรฐานไม่ได้มีความสำคัญต่อการสร้างเว็บแอปพลิเคชัน แต่มาตรฐานมีความสำคัญ เพื่อความสอดคล้องภายในและการบำรุงรักษารหัส.
นี่คือที่การดมกลิ่นโค้ดมีประโยชน์สำหรับนักพัฒนาซอฟต์แวร์ทุกคนตั้งแต่ frontend to backend ฉันอยากจะ ตรวจสอบกระบวนการของการดมรหัส และเสนอบางส่วน โปรแกรมอรรถประโยชน์ที่ช่วยวิเคราะห์มาตรฐานรหัส.
การดมกลิ่นคืออะไร?
การกระทำของการดมกลิ่นรหัสเป็นไปโดยอัตโนมัติ ประหยัดเวลาและลดข้อผิดพลาด. ผู้ดมกลิ่นรหัสจะ ตรวจสอบซอร์สโค้ดเพื่อให้สอดคล้องกับมาตรฐาน กำหนดโดยทีมพัฒนาภายในหรือหน่วยงานกำกับดูแล.
การดมกลิ่นรหัสคล้ายกับการขยี้รหัส แต่มีความรู้มากกว่า ผ้าสำลีเป็นหลัก ตรวจสอบข้อผิดพลาดและข้อผิดพลาดทางไวยากรณ์ ในขณะที่ดมกลิ่นมองหาปัญหามา รหัสวิธีการเขียน. ไฟล์ PHP ยังสามารถทำงานได้อย่างถูกต้อง แต่จะล้มเหลวในการทดสอบการดมรหัสหากชื่อตัวแปรไม่เป็นไปตามมาตรฐาน (เช่น. $ myVariable VS $ my_variable).
คำศัพท์ที่คล้ายกันคือโค้ดที่มีกลิ่น ตรวจสอบข้อบกพร่องในการออกแบบ ในรหัสที่อาจนำไปสู่ข้อบกพร่องที่มีขนาดใหญ่ สิ่งนี้สามารถเกี่ยวข้องกับมาตรฐานรหัส แต่ยังรวมถึง สถาปัตยกรรมระดับสูงสำหรับการเขียนโค้ดที่เป็นเนื้อเดียวกัน.
พื้นที่ทั้งหมดเหล่านี้มีมูลค่าครอบคลุมและเกี่ยวข้องกับการดมรหัส เพียงแค่จำไว้ว่าการดมรหัส ไม่พบข้อบกพร่องในรันไทม์เสมอไป ตั้งแต่ลำดับความสำคัญคือ รักษาความสอดคล้องกับมาตรฐานอย่างเข้มงวด.
ถึงตอนนี้คุณอาจจะถามตัวเองว่ามาตรฐานนั้นสำคัญหรือไม่? ความจริงก็คือพวกเขามีความสำคัญ แต่มากกว่าสำหรับการเพิ่มประสิทธิภาพและโครงการทำความสะอาด นักพัฒนาหลายคนยอมรับว่ามาตรฐานมีความสำคัญต่อการเขียนโปรแกรมและการพัฒนาเว็บโดยเฉพาะในโครงการขนาดใหญ่.
นี่คือคำพูดจากผู้พัฒนา Paul Jones อธิบายว่าทำไมมาตรฐานรหัสจึงมีประโยชน์.
“จุดของมาตรฐานรูปแบบการเขียนโค้ดไม่ได้บอกว่ารูปแบบใดลักษณะหนึ่งดีกว่าความคิดแบบอื่น ... แต่ประเด็นก็คือการตั้งค่าความคาดหวังที่รู้จักกันดีว่ารหัสจะดูอย่างไร.”
หากคุณกำลังสร้าง webapp ขนาดเล็กสำหรับตัวคุณเองมันอาจจะไม่คุ้มค่ากับการใช้เวลากับมาตรฐาน WCAG 2.0 หรือ PSR-2 แต่พิจารณานักพัฒนาซอฟต์แวร์หลายร้อยคนที่ทำงานกับซอร์สโค้ดของ Adobe Photoshop มันจะวุ่นวายถ้าแต่ละคนเขียนสไตล์ของตัวเองและรวมมันเข้าด้วยกัน.
แม้ว่าทีมจะต้องใช้มาตรฐานเป็นอย่างมาก แต่กฎเหล่านี้ก็ยังมีประโยชน์สำหรับผู้พัฒนาที่โดดเดี่ยวเช่นกัน คุณสามารถค้นหามาตรฐานรหัสสำหรับทุกสิ่งตั้งแต่ CSS ถึง WordPress ดังนั้นจึงไม่มีข้อแก้ตัวใด ๆ ที่จะไม่ลองและดูว่าคุณภาพรหัสของคุณดีขึ้นหรือไม่.
คุณค่าของมาตรฐานรหัส
มาตรฐานจะเป็นไปตามธรรมชาติ รักษารหัสของคุณให้สะอาดและเป็นระเบียบ. นักพัฒนารู้วิธีการเขียนโค้ดและวิธีการติดตามการทำงานของกันและกัน.
มาตรฐานรหัสยังช่วยพัฒนาโอเพ่นซอร์สโดยเสนอกฎให้ผู้อื่นปฏิบัติตาม. สามารถรับไฟล์ได้ทุก ๆ เดือนหรือหลายปีต่อมาและยังอ่านง่าย.
สไตล์การเข้ารหัสที่เข้มงวดเป็นความคิดที่ดี แม้ว่าคุณจะเลือกแต่งหน้าด้วยตัวเอง. สิ่งนี้ใช้ความพยายามอย่างมาก แต่เนื่องจากโครงการที่เติบโตเอกสารประเภทนี้มีค่ามาก.
ต่อไปนี้เป็นมาตรฐานการเข้ารหัสที่ควรพิจารณาซึ่งครอบคลุมขอบเขตของภาษาเว็บต่างๆ.
- มาตรฐานการเข้ารหัสลูกแพร์ (PHP)
- Google มาตรฐานสำหรับ HTML / CSS
- Google มาตรฐานสำหรับ JavaScript
- สไตล์การเข้ารหัส Django (Python)
- คู่มือสไตล์ Rails (Ruby)
- WCAG 2.0 (UX)
สุดยอดทรัพยากรการดมกลิ่นรหัส
ตอนนี้เป็นไปได้ที่จะค้นหาโค้ด sniffers ฟรีสำหรับทุกสิ่งตั้งแต่ HTML / CSS ไปจนถึงภาษาแบ็กเอนด์เช่น PHP และ SQL คุณอาจไม่จำเป็นต้องใช้นักดมกลิ่นเหล่านี้หรือทำตามมาตรฐานสำหรับทุกภาษา แต่ควรตรวจสอบความเป็นไปได้เพื่อดูว่าอะไรที่อาจปรับปรุงประสิทธิภาพของคุณ.
Front Code Code Sniffers
แม้ว่า HTML จะทำไม่ได้ จำเป็นต้อง รหัสดมกลิ่นที่ไม่ได้หยุด Squiz จากการสร้างหนึ่ง เป็นโอเพ่นซอร์สอย่างสมบูรณ์และโฮสต์บน GitHub พร้อมตัวเลือกในการคัดลอก / วางรหัสลงในเบราว์เซอร์หรือบันทึก bookmarklet เพื่อให้ทำงานบนหน้าเว็บแต่ละหน้า.
ดมกลิ่นนี้จะตรวจสอบกับมาตรฐานการเข้าถึง A, AA และ AAA สามระดับของ WCAG พร้อมกับส่วนที่ 508 แนวทางซึ่งใช้กับเว็บไซต์ของรัฐบาลเป็นหลัก.
นักพัฒนา CSS อาจชอบดมกลิ่นโค้ด CSS ฟรีซึ่งเป็นโอเพ่นซอร์สซึ่งโฮสต์ผ่าน Node Package Manager.
ผู้ใช้ jQuery ควรตรวจสอบ JSCodeSniffer ที่สร้างโดย Dmitry Sheiko นี่เป็นอีกหนึ่งเว็บแอปฟรีที่โฮสต์ใน GitHub ที่สอดคล้องกับแนวทางสไตล์โค้ดของ jQuery.
หรือคุณอาจลองใช้การซ่อนรหัส JS ด้วย JavaScript Lint หรือ JS Lint เครื่องมือเหล่านี้ตรวจสอบข้อผิดพลาดในไวยากรณ์มากกว่ามาตรฐานรหัส แต่พวกเขายังมีประโยชน์มากเมื่อมันมาถึงการเพิ่มประสิทธิภาพรหัสส่วนหน้า.
สำหรับบันทึกนั้นยังสามารถตรวจสอบมาตรฐาน JS / CSS โดยตรงด้วย PHP_CodeSniffer.
PHP Code Sniffer
PHP_CodeSniffer เป็นเครื่องมือที่ต้องมีในชุดเครื่องมือของคุณหากคุณต้องการปฏิบัติตามมาตรฐานรหัส PHP แพคเกจประกอบด้วยบาง สคริปต์ PHP ที่วิเคราะห์ PHP, JS และโค้ด CSS เพื่อความสอดคล้อง ด้วยเอกสารคู่มือสไตล์โค้ดที่คุณเลือก.
ผู้สร้าง PHP_CodeSniffer Greg Sherwood เขียน backstory ที่ยอดเยี่ยมเกี่ยวกับความคิดที่เกิดขึ้นและปัญหาอะไรที่พยายามแก้ไข (ควรอ่านถ้าคุณมีเวลา).
โดยสรุป Greg ได้ทำงานกับ JavaScript ซึ่งเป็นทีมการเรียนรู้ที่สร้างไว้ในแอพ PHP เป้าหมายของพวกเขาคือการจัดโครงสร้าง JS ในลักษณะที่เป็นไปตามมาตรฐานรหัสของ PHP เพื่อทำให้ชีวิตง่ายขึ้นสลับไปมา ดังนั้น PHP_CodeSniffer จึงเกิดขึ้น.
สิ่งนี้ดีมากสำหรับนักพัฒนา PHP เพราะ ภาษาหลวมมากพร้อมข้อกำหนดของสไตล์ที่บังคับ. กรอบงานเช่น Laravel เข้มงวดมากขึ้น แต่ผู้พัฒนาสามารถ (และควร) ตั้งค่ามาตรฐานรหัสของตนเองโดยไม่ต้องอาศัยกรอบงานของบุคคลที่สาม.
มาตรฐานต่าง ๆ เช่น PSR-0, PSR-1 และ PSR-2 ล้วนได้รับความนิยมและมาพร้อมกับ PHP sniffing library.
แต่คุณสามารถค้นหามาตรฐานโค้ดสำเร็จรูปอื่น ๆ อีกมากมายสำหรับ PHP CMS เช่น WordPress, Magento และ Drupal นักพัฒนาบนแกน Drupal ได้เปิดตัวโมดูลดมกลิ่นรหัสอย่างเป็นทางการชื่อ Coder.
PHP นั้นเป็นภาษาที่ง่ายที่สุดในการปรับให้เหมาะสมกับนักดมกลิ่นโค้ด หากคุณกำลังมองหา รายการมาตรฐานรหัส PHP ตรวจสอบรายการ GitHub นี้.
Backend Code Sniffers อื่น ๆ
นักพัฒนาแบ็กเอนด์ทำงานกับภาษาที่หลากหลายนอกเหนือจาก PHP และจำนวนที่เพิ่มขึ้นในแต่ละปี ด้วยภาษาทางเลือกเรายังมีห้องสมุดการดมกลิ่นรหัสอื่นเช่น code-sniffer สำหรับ Python.
เป็นไปได้ที่จะตรวจสอบสคริปต์อื่น ๆ แบบออนไลน์หรือใช้เครื่องมือเช่น PyLint แต่นี่เป็นวิธีการอีกวิธีหนึ่งที่ต้องใช้ความอดทนในการพัฒนาโฟลว์ของคุณ.
Ruby devs ยังมีชุดของตัวเลือกเมื่อมันมาถึง การแปลและวิเคราะห์รหัส. สิ่งที่ดีที่สุดนั้นฟรีและโอเพนซอร์ซเช่น Ruby Lint ซึ่งเป็นเครื่องวิเคราะห์รหัสแบบคงที่ที่สร้างขึ้นสำหรับรหัส Ruby ที่ทันสมัย.
ฉันยังไม่พบโค้ดดมกลิ่นเฉพาะของ Node.js แต่ฉันหวังว่าโครงการจะปรากฏขึ้นตามกาลเวลา มีผู้ดมกลิ่นรหัส JS ที่สนับสนุนมาตรฐานโหนด แต่ยังคงเป็นภาษาแบ็กเอนด์ที่ใหม่กว่าและต้องใช้เวลาในการเติบโต.
สุดท้ายเรามีไวยากรณ์ SQL ที่ใช้สำหรับฐานข้อมูล รหัสนี้อาจมีเล่ห์เหลี่ยมเนื่องจากยากต่อการค้นหามาตรฐานไวยากรณ์ที่ได้รับการสนับสนุนอย่างดีสำหรับซอร์สโค้ด SQL แต่ฉันพบ webapp การจัดรูปแบบ SQL ซึ่งควรพิสูจน์ว่ามีประโยชน์อย่างมากเมื่อปรับการค้นหาฐานข้อมูลให้เหมาะสม.
สรุป
สถานที่ที่ดีที่สุดในการเริ่มต้นการดมรหัสคือหนึ่งภาษาและหนึ่งมาตรฐาน HTML / CSS เป็นสถานที่ที่ง่ายในการเริ่มต้นสำหรับนักพัฒนาส่วนหน้าในขณะที่ PHP เป็นตัวเลือกที่นิยมในหมู่นักพัฒนาแบ็กเอนด์ (โดยเฉพาะ WordPress devs).
และหากคุณต้องการเรียนรู้เพิ่มเติมลองดูโพสต์ที่เกี่ยวข้องเหล่านี้ในการดมกลิ่นโค้ดการทำเส้นและการวิเคราะห์โค้ดอัตโนมัติเพื่อการปรับให้เหมาะสม.
- ทำไมคุณต้องมีมาตรฐานการเข้ารหัส
- รหัสกลิ่นโดย Jeff Atwood
- PHP Code Sniffer: การติดตั้งและกำหนดค่า
- รู้เบื้องต้นเกี่ยวกับ CodeSniffer (ตอนที่ 1)
- GitHub Showcase: เครื่องมือทำความสะอาดรหัสสินค้า