
เช้านี้ไปดู code ที่พัฒนาด้วยภาษา Java แล้วพบว่าบาง class มีการ import เยอะมาก ๆหรือในหน้าแรกอุดมไปด้วยการ importคำถามที่น่าสนใจคือ
สำหรับนักพัฒนาที่เขียน test หรือชุดการทดสอบ นะ !! มาดูกันว่า ชุดการทดสอบมันส่งกลิ่นแปลก ๆ บ้างหรือไม่ ? ปกติ code ที่นักพัฒนาสร้างขึ้นมา มักจะมีสิ่งแปลก ๆ มักจะส่งกลิ่น หรือ ส่งสัญญาณของปัญหาออกมา ซึ่งเราเรียกว่า Code Smell ปัญหามันไม่ใช่ Code Smell เพียงอย่างเดียว แต่ …. มันมีอย่างอื่นอีกเช่น เรารู้หรือไม่ว่าสิ่งเหล่านั้นมันคือ Code Smell !! ถ้าพูดง่าย ๆ คือ เรามีจมูกที่ดีหรือไม่ เรามีสายตาที่ดีหรือไม่ เพื่อทำให้ได้กลิ่น ให้มองเห็น Code Smell หรือสิ่งที่ผิดปกติหรือไม่ ? นั่นคือสิ่งที่นักพัฒนาต้องสร้างและปรับปรุงความสามารถขึ้นมา
หลังจากที่พูดคุยเรื่อง ORM (Object Relation Mapping) ก็พบว่ามักจะพูดคุยเรื่องปัญหาของ dependency graph ที่เกิดขึ้น ซึ่งส่วนใหญ่มักจะประสบภัยกับเรื่องนี้อย่างมาก เมื่อระบบเริ่มมี model หรือ entity และความสัมพันธ์มากขึ้น สุดท้ายส่งผลให้ระบบพังสิครับ หรือไม่เช่นนั้นก็ memory หมด (OutOfMemory) ทำไมถึงเป็นเช่นนั้นนะ
สิ่งที่นักพัฒนาที่ดีพึงมี คือ มีจมูกที่ดี หมายความว่าต้องหัดดมกลิ่นของ code ว่า code เหล่านั้นมีกลิ่นที่ไม่ดี ไม่พึงประสงค์หรือไม่ ? ซึ่งเราจะเรียกว่า Code Smell แต่ปัญหาหลัก ๆ คือ เหล่านักพัฒนานั้น จมูกไม่ค่อยดีนะสิ มักจะไม่ได้กลิ่นอะไรจาก code เลย !! ดังนั้นสิ่งแรกที่นักพัฒนาควรทำคือ อ่าน และ ศึกษา รูปแบบของ code ที่ไม่ดีจากหนังสือ Refactoring : Improving the Design of Existing code มาดูกันว่า Code Smell ที่เจอบ่อย ๆ มีลักษณะอย่างไรบ้าง