จาก post ที่ Share ในกลุ่ม Clojure in Thai นั้น
เป็นข้อมูลที่น่าสนใจมาก ๆ สำหรับการพัฒนา software
แต่สิ่งที่น่าสนใจคือ
วิธีการให้ได้มาซึ่ง visualization สวย ๆ แบบใน post
ก็เลยลองตามไปใน Twitter ก็พบที่มาคือ

โดยในต้นทางนั้นจะใช้ Hercules
ดังนั้นไปดูการสร้าง การทำงานของมันหน่อย

จากที่ไปดูในเอกสารของ Hercules

จะมีการทำงาน 2 ขั้นตอนคือ

ขั้นตอนที่ 1 ผ่านคำสั่ง hercules

ทำการอ่าน history ทั้งหมดจาก Git repository
มาสร้างเป็นข้อมูลในรูปแบบกราฟแบบ DAG (Directed Acyclic Graph)
เพื่อให้ง่ายต่อการวิเคราะห์
โดยขั้นตอนนี้จะพัฒนา program ด้วยภาษา Go

ขั้นตอนที่ 2 ผ่านคำสั่ง labours
ทำการแสดงผลข้อมูลที่จัดเก็บจากขั้นตอนที่ 1
โดยขั้นตอนนี้จะพัฒนา program ด้วยภาษา Python

มาลองใช้งานกันดู

ผมใช้งานผ่าน Docker Image ที่ทางทีมพัฒนา Hercules เตรียมไว้
แน่นอนว่า ไปลองกับ repository ของ Clojure ใน GitHub
ใช้เวลาการทำงานนานใช้ได้เลย
ผลเป็นดังนี้

เป็น project ที่น่าสนใจดี

ลองนำใช้งานกันดูได้ ที่สำคัญมีรูปแบบในการ visualize มากกว่านี้นะ เช่น

  • เรื่องของไฟล์
  • เรื่องของคนที่ contribute
  • เรื่องของ Code ownership
  • เรื่อง Coupling ของ code
  • เรื่องอัตราการเปลี่ยนแปลง
  • แถมยังสามารถเขียน plugin เพิ่มได้อีกด้วย


เท่าที่ลองก็มีหลาย ๆ project ไม่สามารถวิเคราะห์ได้
ก็ช่วยกันส่ง issue เข้าไปได้ครับ

Tags: