code-smell Archive

จะ import เยอะไปไหน ?

เช้านี้ไปดู code ที่พัฒนาด้วยภาษา Java แล้วพบว่าบาง class มีการ import เยอะมาก ๆหรือในหน้าแรกอุดมไปด้วยการ importคำถามที่น่าสนใจคือ

Read More…

คำถาม :: เราวิเคราะห์ code ด้วยอะไรกันบ้าง ?

วันนี้เจอคำถามที่น่าสนใจคือ เราทำการวิเคราะห์ code ของระบบงานที่เราพัฒนากันอย่างไร ? เพื่อทำให้รู้สถานะปัจจุบันของระบบ เพื่อทำให้เข้าใจโครงสร้าง เพื่อทำให้เห็นมุมมองต่าง ๆ เพื่อทำให้เห็นปัญหาต่าง ๆ หลังจากนั้นจึงนำข้อมูลเหล่านั้น มาปรับปรุง code ของระบบให้ดีขึ้น

Read More…

เมื่อ Test มีกลิ่นแปลก ๆ ก็ลงมือแก้ซะ

สำหรับนักพัฒนาที่เขียน test หรือชุดการทดสอบ นะ !! มาดูกันว่า ชุดการทดสอบมันส่งกลิ่นแปลก ๆ บ้างหรือไม่ ? ปกติ code ที่นักพัฒนาสร้างขึ้นมา มักจะมีสิ่งแปลก ๆ มักจะส่งกลิ่น หรือ ส่งสัญญาณของปัญหาออกมา ซึ่งเราเรียกว่า Code Smell ปัญหามันไม่ใช่ Code Smell เพียงอย่างเดียว แต่ …. มันมีอย่างอื่นอีกเช่น เรารู้หรือไม่ว่าสิ่งเหล่านั้นมันคือ Code Smell !! ถ้าพูดง่าย ๆ คือ เรามีจมูกที่ดีหรือไม่ เรามีสายตาที่ดีหรือไม่ เพื่อทำให้ได้กลิ่น ให้มองเห็น Code Smell หรือสิ่งที่ผิดปกติหรือไม่ ? นั่นคือสิ่งที่นักพัฒนาต้องสร้างและปรับปรุงความสามารถขึ้นมา

Read More…

[แปล] ทำความเข้าใจเกี่ยวกับ TDD และ Unit test กันอีกสักหน่อย

เช้านี้นั่งอ่านบทความเก่า ๆ ที่เก็บเอาไว้คือ 5 Common Misconceptions About TDD & Unit Tests อธิบายเกี่ยวกับความเข้าใจผิดเกี่ยวกับ TDD และ Unit Test จึงทำการแปลและสรุปเนื้อหาบางส่วนไว้นิดหน่อย

Read More…

ทำไมต้องใช้ Lazy Loading ใน Data Model ด้วยนะ ?

หลังจากที่พูดคุยเรื่อง ORM (Object Relation Mapping) ก็พบว่ามักจะพูดคุยเรื่องปัญหาของ dependency graph ที่เกิดขึ้น ซึ่งส่วนใหญ่มักจะประสบภัยกับเรื่องนี้อย่างมาก เมื่อระบบเริ่มมี model หรือ entity และความสัมพันธ์มากขึ้น สุดท้ายส่งผลให้ระบบพังสิครับ หรือไม่เช่นนั้นก็ memory หมด (OutOfMemory) ทำไมถึงเป็นเช่นนั้นนะ

Read More…

[Refactoring code] ว่าด้วยเรื่อง Creation Method

เนื่องจากทำการ review code ของระบบที่พัฒนาด้วยภาษา Swift แล้วพบว่าการสร้าง object บางตัวนั้น สามารถสร้างได้หลายแบบ ทำให้มี constructor จำนวนมาก !! ซึ่งมันเป็น Code Smell อย่างหนึ่ง ดังนั้นได้เวลาปรับปรุง code ให้ดีขึ้นแล้วนะ

Read More…

อย่าปล่อยให้ code มีกลิ่นที่ไม่ดี !!

สิ่งที่นักพัฒนาที่ดีพึงมี คือ มีจมูกที่ดี หมายความว่าต้องหัดดมกลิ่นของ code ว่า code เหล่านั้นมีกลิ่นที่ไม่ดี ไม่พึงประสงค์หรือไม่ ? ซึ่งเราจะเรียกว่า Code Smell แต่ปัญหาหลัก ๆ คือ เหล่านักพัฒนานั้น จมูกไม่ค่อยดีนะสิ มักจะไม่ได้กลิ่นอะไรจาก code เลย !! ดังนั้นสิ่งแรกที่นักพัฒนาควรทำคือ อ่าน และ ศึกษา รูปแบบของ code ที่ไม่ดีจากหนังสือ Refactoring : Improving the Design of Existing code มาดูกันว่า Code Smell ที่เจอบ่อย ๆ มีลักษณะอย่างไรบ้าง

Read More…

Developer ส่วนใหญ่ไม่รู้จัก Code Smell ?

จาก Newsletter ของคุณ Sandi Metz เป็นผู้เขียนหนังสือ Practical Object-Oriented Design in Ruby (POODR) ได้อธิบายเรื่องของ Code Smell ไว้อย่างน่าสนใจ จึงได้นำมาแปล และ สรุปไว้นิดหน่อย ซึ่งอ่านแล้วมันเจ็บแสบน่าดู แต่ผมเชื่อว่า มันคือเรื่องจริงนะ !!

Read More…

Developer ที่ดีควรมี “จมูก” ที่ดีนะ

จากคำกล่าวที่ว่า If it stinks, change it. —Grandma Beck, discussing child-rearing philosophy ถ้ามันเหม็น ก็ทำการเปลี่ยนมันซะ Code ก็เช่นกัน !! แต่ปัญหาที่ developer มักพบเจอคือ code แบบไหนล่ะ ที่ควรแก้ไข !!

Read More…

Java Code Smell :: ทำไมถึงต้องใช้ cast type และ instanceof

วันนี้ทำการ review code มาเจอ code ที่น่าสนใจ เกี่ยวกับการ cast type ของ object และการใช้ instanceof มาเพื่อตรวจสอบว่า เป็น instance ของ class ที่เราต้องการหรือไม่ มาดูกันว่ามันเป็นอย่างไร

Read More…