วันนี้เจอคำถามที่น่าสนใจคือ
เราทำการวิเคราะห์ code ของระบบงานที่เราพัฒนากันอย่างไร ?

เพื่อทำให้รู้สถานะปัจจุบันของระบบ
เพื่อทำให้เข้าใจโครงสร้าง
เพื่อทำให้เห็นมุมมองต่าง ๆ
เพื่อทำให้เห็นปัญหาต่าง ๆ

หลังจากนั้นจึงนำข้อมูลเหล่านั้น มาปรับปรุง code ของระบบให้ดีขึ้น

สิ่งที่น่าจะใช้ในการวิเคราะห์น่าจะประกอบไปด้วยอะไรบ้าง ?

  • ความซับซ้อนของ code ด้วย Cyclomatic complexity
  • ใช้ Lint
  • Static code analysis
  • Duplicate code
  • Dead code
  • Cohesion
  • Coupling
  • Testing
  • Code coverage
  • Dependency graph
  • Performance, Tracing และ Monitoring app
  • ดูด้วยตาคน ใจคน ประสบการณ์คน
  • และอื่น ๆ อีกมากมาย

คำถามคือ ในทีมพัฒนาใช้อะไรมาวัดบ้าง ? อย่างไร ?
คำถามต่อมาคือ ทำการปรับปรุงแก้ไขหรือไม่ ? อย่างไร ?