refactoring Archive

Refactoring :: ทำความรู้จักกับ Rule of Three

วันนี้เริ่มนำกิจกรรมเข้าจังหวะ ชื่อว่า Refactoring Code Retreat มาให้ทีมลองเล่น และ ฝึกฝน การ refactor code กัน ทำให้ต้องกลับไปอ่านเรื่อง refactoring แล้วพบว่า มีกฎที่น่าสนใจในการ refactoring ชื่อว่า Rule of Three ดังนั้น มาทำความรู้จักกับมันหน่อยสิ

Read More…

ทำไม developer กลัว code ของคนอื่น !!

บ่อยครั้งมากที่ developer มักจะต้องทำงาน อยู่บน code ที่ไม่มี test อยู่บน code ที่มี test นะ แต่คุณภาพไม่ดี อีกทั้ง test coverage ก็มีค่าที่ต่ำอีก แน่นอนว่า มันก่อให้เกิดปัญหาตามาอย่างมากมาย ลองมาดูหน่อยสิว่า แต่ละปัญหามันเป็นอย่างไร

Read More…

เราทำการ refactor code มากน้อยเพียงใด

ตามแนวคิด TDD (Test-Driven Development) นั้น การ refactoring นั้นถือได้ว่าเป็นสิ่งที่มีประโยชน์อย่างมากมาย เนื่องจาก ถ้าขาดการ refactoring แล้ว จะทำให้ code ในระบบของเรานั้นมี technical debt เพิ่มมากขึ้นเรื่อยๆ สุดท้ายถ้ามีมากขึ้นเรื่อยๆ จนต้องโยน code ชุดนี้ไป และต้อง rewrite ระบบเดิมขึ้นมาใหม่

Read More…

การ rewrite ไม่น่ากลัวอย่างที่คิด ถ้าทำถูกวิธี !!!

โลกของการพัฒนา software นั้น บริษัทส่วนใหญ่จะอยู่กับ Legacy system และพบว่ามักจะชอบโยนระบบเหล่านี้ทิ้งไป แล้วทำการเขียนใหม่ (rewrite) ทั้งหมด !! เนื่องจากเชื่อว่า ถ้าเขียนใหม่แล้ว ระบบมันจะดีกว่าเดิม เราจะได้ใช้เทคโนโลยีใหม่กว่าเดิม เราจะได้ไม่ต้องใช้ชีวิตอยู่กับ Legacy system ที่มันแย่ๆ แต่การสร้างใหม่ทั้งหมดมันน่ากลัวเช่นกันนะ !!

Read More…

บันทึก Cyber Dojo :: สิ่งที่ได้เรียนรู้จากปัญหาการนับจำนวนบรรทัดของ Code

ปัญหาที่นำมาเป็นโจทย์ในการฝึกคือ Counting code line หรือการนับจำนวน Line of Code นั่นเอง ซึ่งนำมาจาก Code Kata 13 แน่นอนว่า ปัญหานี้มีวิธีการแก้ไขหลากหลายมาก มาเริ่มฝึกกันดีกว่า และมาดูว่าสุดท้ายแล้วได้ผลอย่างไร

Read More…

แปลเรื่อง Code as Documentation

จาก Bliki เรื่อง CodeAsDocumentation ของคุณ Martin Fowler ได้ทำการอธิบายได้อย่างน่าสนใจ ผมจึงนำมาแปลนิดๆ หน่อยๆ ตามที่ผมเข้าใจ หนึ่งในส่วนหลักของการพัฒนา software นั้นก็คือการ coding หรือ programming นั้น ควรถูกยกให้เป็นหัวใจ หรือ ตัวหลักของการพัฒนา software กันเลย เนื่องจาก เราในสนใจเรื่องนี้กันน้อยมากๆ !!

Read More…

มาเขียน code ให้มันอ่านง่ายๆ จาก Crisp blog

วันนี้เห็นบทความอธิบายเรื่อง 7 Rules on Code Readability จาก Crisp blog ได้อธิบายกฎเกี่ยวกับ code ที่มันอ่านง่าย เข้าใจง่าย ไว้อย่างน่าสนใจ ดังนั้นมาดูกันหน่อยว่ามีอะไรที่น่าสนใจ และน่านำไใช้ปรับปรุงในการเขียน code ของ developer ทั้งหลาย

Read More…

Connascence มันคืออะไรในการพัฒนา software นะ

วันนี้อ่านบทความจาก Twitter พบว่ามีการพูดถึงคำว่า Connascence ลองไปเปิด dictionary เพื่อแปลเป็นภาษาไทยคือ ปัจจัยที่เกิดร่วมกัน !! งงไปกันใหญ่นะสิ ดังนั้น จึงลองไปค้นหาใน Wikipedia ก็ได้ความมาว่า มันคือ metric ในการวัดคุณภาพของ software ซึ่งคิดค้นโดยคุณ Meilir Page-Jones ใช้สำหรับอธิบายสาเหตุของ complexity และ dependency ต่างๆ ในโลกของ Object Oriented Design (OOD) เช่น coupling หรือ การผูกมัด นั่นเอง ดังนั้นมาดูกันหน่อยว่า Connascence มันเป็นอย่างไร และ สำคัญอย่างไรในการพัฒนา software

Read More…

Refactoring มันเสียเวลานะ

หลายๆ คนบอกว่า Refactoring มันคือสิ่งที่ทำให้เสียเวลาไปโดยเปล่าประโยชน์ เนื่องจากไม่รู้ว่าจะทำอะไร เนื่องจากไม่รู้ว่าจะทำอย่างไร เนื่องจากไม่รู้ว่าตัวเองไม่รู้อะไร เนื่องจากไม่รู้ว่าจะเปิด code ส่วนไหนมา refactor นะ เนื่องจากเราไม่ต้องการแก้ไข code อะไรนะ เนื่องจากเราไม่ต้องการเสียเวลาไปทั้งวันเพื่อ refactor code นะ

Read More…

มาดูสุขภาพของ code ด้วยการนับจำนวน method

บทความเรื่อง Detecting Refactoring Diligence ได้อธิบาย เกี่ยวกับการตรวจดูว่า เราทำการ refactoring code อยู่ในรูปแบบไหน เราระมัดระวังใรการ refactoring code ดีหรือไม่ ซึ่งเป็นแนวคิดที่น่าสนใจ จึงนำมาเขียนสรุปนิดหน่อย

Read More…