จาก 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 เข้าไปได้ครับ