อ่านเจอบทความอธิบายคุณภาพของ code ภาษา PHP ด้วย PhpMetrics
จาก Sitepoint Visualize Your Code’s Quality with PhpMetrics
จึงนำมาแปล ซึ่งคิดว่าเป็นบทความที่แนะนำเครื่องมือ
สำหรับการวิเคราะห์คุณภาพของ code ได้ดีเลยทีเดียว
ดังนั้นมาลองใช้กันดูสักหน่อย
PhpMetrics คืออะไร
คือ Static analysis tool สำหรับภาษา PHP
โดยผลการวิเคราะห์ code ภาษา PHP อยู่ในรูปแบบดังต่อไปนี้
- Maintenability Index
- Cyclomatic complexity
- Halstead’s metrics
- Lack of cohesion of methods
- Abstraction/Instability
และสามารถดู metric อื่นๆ เพิ่มเติมได้ที่นี่
ในส่วนการแสดงผลจะใช้ D3 เข้ามาช่วย
ทำให้การแสดงผลดูดี สวยงาม และที่สำคัญคือเข้าใจง่าย
การติดตั้ง
สามารถติดตั้งได้หลายรูปแบบ
1. ติดตั้งที่อธิบายทาง web ของ PhpMetrics ดังนี้
$wget https://github.com/Halleck45/PhpMetrics/raw/master/build/phpmetrics.phar $chmod +x phpmetrics.phar $mv phpmetrics.phar /usr/local/bin/phpmetrics
2. ทำการติดตั้งผ่าน composer ดังนี้
$sudo composer global require 'halleck45/phpmetrics'
ตรวจสอบการติดตั้ง ด้วยการใช้คำสั่ง
$phpmetrics
ทดลองวิเคราะห์ code กันดีกว่า
โดยใช้ code ของ Laravel framework มาตามตัวอย่างเลย ดังนี้
ผลการวิเคราะห์อยู่ในรูปแบบของ HTML บันทึกในไฟล์ laravel.html
$git clone https://github.com/laravel/framework lframe $phpmetrics --report-html=laravel.html lframe/
ถ้าต้องการนำไป integrate กับระบบ Continuous Integration
สามารถทำการสร้างรายงานในรูปแบบ XML ได้ด้วยการใช้ parameter ชื่อว่า –report-xml
ผลการทำงานเป็นดังรูป
หน้าตาของผลการวิเคราะห์เป็นดังนี้
มาลองอ่านผลการวิเคราะห์กันสักหน่อย
ทาง Phpmetrics มีเอกสารสำหรับอธิบายรูปแบบของผลการวิเคราะห์ไว้ที่นี่ How to read report ?
ก่อนอื่นอธิบายเรื่องของสีในรายงานต่างๆ ก่อน
- สีเขียว คือ code ดี แจ่มแมว
- สีเหลือง คือ code ดูดีนะ แต่ต้องพึงระวัง
- สีแดง คือ code คุณมีปัญหาบางอย่างแล้วนะ
มาเริ่มดูการวิเคราะห์แรก คือ Bubble Area
ประกอบไปด้วย
- แต่ละไฟล์แสดงด้วยวงกลม
- ขนาดของวงกลมแสดงถึงค่าความซับซ้อน (Cyclomatic complexity)
- สีของวงกลม คือ Maintenability Index
ดังนั้น ถ้าวงกลมใหญ่ๆ มีสีแดง นั่นแสดงว่า code นั้นมันดูแลยากสุดๆ ดังรูป
ส่วนของ Repartition สำหรับสรุปตัวเลขการวิเคราะห์ทั้งหมด
ส่วนการแสดงผลแบบตาราง Explore
แสดงข้อมูลของ code ในแต่ละ folder และในแต่ละไฟล์
มีผลการวิเคราะห์ละเอียดมากๆ ไม่เชื่อดูรูปเลยครับ
ต่อมาคือส่วนการแสดงกราฟ ซึ่งสามารถเลือกข้อมูลที่ต้องการได้
เพื่อนำข้อมูลที่เราต้องการมาเปรียบเทียบกันว่า
ข้อมูลแต่ละตัวมันสัมพันธ์กันอย่างไร
ตัวอย่างเช่น ความสัมพันธ์ระหว่าง ความซับซ้อน ค่าการดูแล
และขนาดของวงกลม คือ Line of Code
แสดงข้อมูลดังรูป
โดยสรุปแล้ว
พบว่า Phpmetrics ทำการวิเคราะห์ code ของ PHP ได้ละเอียดมากๆ
และสามารถดูข้อมูลในมุมมองต่างๆ ได้ง่าย และ สะดวก
เพื่อทำให้เราสามารถรู้ได้ว่าคุณภาพของ code ที่เราพัฒนานั้นเป็นอย่างไร
ลองนำไปใช้กันดูครับ มันแจ่มแมวมากๆ