refactoring Archive

Compose Method  คือสิ่งที่ developer ควรรู้ และ นำไปใช้งาน

ช่วงนี้ทำการ review code ของทีมพัฒนาบ้างเล็กน้อย จึงมีคำแนะนำ สำหรับการ Refactor code หรือปรับปรุงโครงสร้าง code ให้ดีขึ้น ทั้งเรื่องของการตั้งชื่อและโครงสร้างที่เหมาะสม โดยวิธีการพื้นฐานที่ง่ายสุด ๆ สำหรับการ Refactor code คือ Compose Method ดังนั้น มาทำความรู้จักกันหน่อยว่ามันเป็นอย่างไร

Read More…

คำถาม :: ทำการ Refactor พวก Legacy code เมื่อไรดี ?

สิ่งเล็ก ๆ ที่เรียกว่า Legacy code นั้น มักเป็นสิ่งที่ไม่มีใครชอบ แต่แปลกนะว่า มักจะมีคุณค่า หรือ สร้างรายได้ให้กับองค์กร !! จำนวนของ Legacy code นั้นมักมีจำนวนมากมาย เกินกว่าที่เราจะจัดการมันได้ ดังนั้นเราจะตัดสินใจอย่างไรว่า code ส่วนไหน ต้องทำการ refactor ? code ส่วนไหน ไม่จำเป็นต้อง refactor ? ถ้าระบบงานมันทำงานได้ดีอยู่แล้ว จะต้องทำการ refactor หรือไม่ ? ยิ่งกว่านั้นการ refactor code มันมีความเสี่ยง และ ค่าใช้จ่ายสูง ดังนั้น เราต้องการมีตัวช่วยหน่อยสิว่า เมื่อไรควรที่จะ refactor ดี

Read More…

Duplication code มันโหดร้ายนะ มาลดกันเถอะ !!

คุณ Robert C. Martin หรือ Uncle Bob กล่าวไว้ว่า “Duplication may be the root of all evil in software.” ดังนั้นในฐานนะของนักพัฒนา software เมื่อพบเจอว่า code ส่วนไหนที่มัน duplicate หรือ ซ้ำซ้อน กัน ก็ควรกำจัด code ส่วนนั้นออกไปจากระบบ แต่สิ่งที่เราพบเจอในโลกความเป็นจริง คือ ทุกๆ ระบบมี code ที่มัน duplicate จำนวนมากมาย มันหมายความว่าอะไรกัน

Read More…

ตัวอย่างการ refactoring ด้วย Rule of Three

จาก blog เรื่องของ Refactoring Rule of Three นั้น อธิบายไปอาจจะเห็นภาพไม่ชัดเจนเท่าไรนัก ดังนั้น เรามาลองเขียน code กันดีกว่า … โดยเป้าหมายคือ จะทำการแยกส่วนการทำงานที่มันซ้ำกัน 3 ครั้งออกไปจาก code ของเรา มาเริ่มกันเลย !!

Read More…

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…