อาทิตย์นี้แวะไปเห็นว่ามี Refactoring Manifesto ซึ่งพูดถึงว่าทำไมการ refactoring ทำให้ระบบมันอยู่กับเราเพื่อส่งมอบ value ให้กับ user และ developer และมีแนวปฏิบัติอะไรที่ช่วยเสริมประโยชน์ refactoring เข้าไปให้มากขึ้น

  1. Refactoring ทำให้ product อยู่กับเราได้นานขึ้น
  2. ระบบเราควรจะถูกออกแบบมาให้เรียบง่าย เพื่อที่จะ refactor ได้ง่ายขึ้น
  3. Refactoring ไม่เท่ากับการ rewriting เพราะอย่างหลังคือการโยนส่วนที่เสียทิ้ง
  4. Refactoring คือการเพิ่มประสิทธิภาพ ซึ่งเพิ่มความสวยงามและคุณภาพไปในตัว
  5. Refactoring เป็นศิลป์ ต้องใช้ความคิดสร้างสรรค์ โดยนำ technique และเครื่องมือใหม่ ๆ เข้ามาช่วย
  6. Refactoring ไม่ใช่ trend เพราะมันคือ process ที่ไม่มีที่สิ้นสุด
  7. Refactoring คือการเรียนรู้ ว่าระบบของเรามันทำงานยังไงหรือมันทำงานผิดปกติตรงไหน
  8. Refactor ตลอดแม้อยู่ในช่วงเวลาคับขัน focus ที่แนวคิดมากกว่าแรงที่ต้องใช้
  9. อย่าตกเป็นทาสของ legacy code แต่ให้เป็นนายมันและแบ่งปันประสบการณ์ให้คนอื่น
  10. เรา Refactor code ได้ทุกรูปแบบแม้ว่ามันจะห่วยแค่ไหนก็ตาม แต่ไม่ได้หมายความว่าเราต้องทำให้ code มันห่วยแตกที่สุดค่อย refactor นะ

ระหว่างพัฒนา software อย่าลืม refactoring กันด้วยนะครับ เพราะการที่มี code ที่คุณภาพดีขึ้นมันอาจจะช่วยทำให้โลกของเราก้าวหน้าไปในทางที่ดีขึ้นได้ ทั้งในด้าน user experience นวัตกรรมใหม่ ๆ ลดช่องโหว่จากการโจมตี การทำงานร่วมกันดีขึ้น และที่สำคัญ สามารถปรับเปลี่ยนตามความต้องการของโลกที่เปลี่ยนไปได้เร็วขึ้นนั่นเอง

Refactoring is not a needless cost. It is anti-needless complexity that prevents change.