Screen Shot 2557-12-26 at 12.12.35 AM
อ่านเจอบทความอธิบายคุณภาพของ code ภาษา PHP ด้วย PhpMetrics
จาก Sitepoint Visualize Your Code’s Quality with PhpMetrics
จึงนำมาแปล ซึ่งคิดว่าเป็นบทความที่แนะนำเครื่องมือ
สำหรับการวิเคราะห์คุณภาพของ code ได้ดีเลยทีเดียว
ดังนั้นมาลองใช้กันดูสักหน่อย

PhpMetrics คืออะไร

คือ Static analysis tool สำหรับภาษา PHP
โดยผลการวิเคราะห์ code ภาษา PHP อยู่ในรูปแบบดังต่อไปนี้

และสามารถดู 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

ผลการทำงานเป็นดังรูป
Screen Shot 2557-12-25 at 11.15.20 PM

หน้าตาของผลการวิเคราะห์เป็นดังนี้

Screen Shot 2557-12-25 at 11.21.58 PM

มาลองอ่านผลการวิเคราะห์กันสักหน่อย

ทาง Phpmetrics มีเอกสารสำหรับอธิบายรูปแบบของผลการวิเคราะห์ไว้ที่นี่ How to read report ?

ก่อนอื่นอธิบายเรื่องของสีในรายงานต่างๆ ก่อน

  • สีเขียว คือ code ดี แจ่มแมว
  • สีเหลือง คือ code ดูดีนะ แต่ต้องพึงระวัง
  • สีแดง คือ code คุณมีปัญหาบางอย่างแล้วนะ

มาเริ่มดูการวิเคราะห์แรก คือ Bubble Area
ประกอบไปด้วย

  • แต่ละไฟล์แสดงด้วยวงกลม
  • ขนาดของวงกลมแสดงถึงค่าความซับซ้อน (Cyclomatic complexity)
  • สีของวงกลม คือ Maintenability Index

ดังนั้น ถ้าวงกลมใหญ่ๆ มีสีแดง นั่นแสดงว่า code นั้นมันดูแลยากสุดๆ ดังรูป

Screen Shot 2557-12-25 at 11.37.24 PM

ส่วนของ Repartition สำหรับสรุปตัวเลขการวิเคราะห์ทั้งหมด

Screen Shot 2557-12-25 at 11.43.21 PM

ส่วนการแสดงผลแบบตาราง Explore

แสดงข้อมูลของ code ในแต่ละ folder และในแต่ละไฟล์
มีผลการวิเคราะห์ละเอียดมากๆ ไม่เชื่อดูรูปเลยครับ

Screen Shot 2557-12-25 at 11.45.48 PM

ต่อมาคือส่วนการแสดงกราฟ ซึ่งสามารถเลือกข้อมูลที่ต้องการได้

เพื่อนำข้อมูลที่เราต้องการมาเปรียบเทียบกันว่า
ข้อมูลแต่ละตัวมันสัมพันธ์กันอย่างไร

ตัวอย่างเช่น ความสัมพันธ์ระหว่าง ความซับซ้อน ค่าการดูแล
และขนาดของวงกลม คือ Line of Code
แสดงข้อมูลดังรูป

Screen Shot 2557-12-25 at 11.50.22 PM

โดยสรุปแล้ว

พบว่า Phpmetrics ทำการวิเคราะห์ code ของ PHP ได้ละเอียดมากๆ
และสามารถดูข้อมูลในมุมมองต่างๆ ได้ง่าย และ สะดวก
เพื่อทำให้เราสามารถรู้ได้ว่าคุณภาพของ code ที่เราพัฒนานั้นเป็นอย่างไร

ลองนำไปใช้กันดูครับ มันแจ่มแมวมากๆ