ช่วงวันหยุดทำการอ่านหนังสือ Tidy First ? (A personal Exercise in Empirical Software Design)
ก่อนหน้านี้ติดตามอ่านจาก SubStack::Tidy First ของคุณ Kent Beck
ในหนังสือเล่มนี้ทำการอธิบายถึงแนวปฏิบัติในการพัฒนา software ที่ดี
นั่นคือการลด code ที่ไม่ดี หรือ ผูกมัดกันมาก ๆ
ด้วยการจัดการและปรับปรุง code ให้ดียิ่งขึ้น (Refactoring หรือ Tidying) นั่นเอง
เพื่อช่วยทำให้ code อ่านง่ายขึ้น
ง่ายต่อการแก้ไข และ ลดผลกระทบต่างการเปลี่ยนแปลงลงไป

แทนที่จะทำการปรับปรุง code จำนวนมาก ๆ ในครั้งเดียว
ก็ให้ทำการปรับปรุง code บ่อย ๆ เล็ก ๆ ไปเรื่อย ๆ
ตามปัญหาที่พบเจอ
มันคือแนวทางการแบ่งปัญหาใหญ่ ออกมาเป็นปัญหาเล็ก ๆ
ซึ่งในหนังสือเล่มนี้จะมีอยู่ 33 บท !!
เพื่อแนะนำการปรับปรุง code ของระบบให้ดีขึ้น

โดยแนวทางของหนังสือจะทำตามแนวคิด Software design ที่ดี ดังนี้

  • Coupling
  • Cohesion
  • Discounted cash flows
  • Optionality

เนื่องจาก cost ของ software นั้นมาจาก cost ของการเปลี่ยนแปลง
cost ของการเปลี่ยนแปลง มาจาก cost ของการเปลี่ยนแปลงขนาดใหญ่
cost ของการเปลี่ยนแปลงขนาดใหญ่ มาจาก coupling ของระบบที่สูง
ดังนั้น cost ของ software จะมาจาก cost ของ coupling นั่นเอง
จึงทำให้เรื่องของการ Decoupling/No coupling หรือ Loosely coupling จึงเป็นเรื่องที่สำคัญ

การจัดการเมื่อพบหรือเจอปัญหา จึงเป็นสิ่งที่สำคัญ
ดังนั้นคำว่า later หรือ เดี๋ยวค่อยกลับมาทำ จึงเป็นเรื่องต้องห้าม
เจอปัญหาแล้วต้องทำการแก้ไขทันที
แต่ว่า เรารู้และเข้าใจรูปแบบของปัญหาเหล่านั้นหรือไม่
รวมทั้งแนวทาง และ ขั้นตอนการจัดการ
ในหนังสือเล่มนี้ทำการอธิบายไว้ได้อย่างน่าสนใจ

ลองหามาอ่านกันดูครับ

ปิดท้ายด้วยความหมายของคำว่า Tidy First

  • ทำการจัดการ code ก่อนที่จะแก้ไข หรือ เพิ่ม
  • การจัดการต้องมีประสิทธิภาพ และ ปลอดภัย
  • การจัดการที่ดี ต้องรู้ว่าจะหยุดทำเมื่อไร ไม่ใช่ทำไปเรื่อย ๆ เพราะว่าทุกอย่างมีค่าใช้จ่ายเสมอ
  • การเปลี่ยนแปลงทีละเล็กละน้อย
  • ต้องเข้าใจพื้นฐานของ Software design ที่ดี เพื่อช่วยให้เกิดการจัดการที่ดีอย่างสม่ำเสมอ

ขอให้สนุกกับการอ่าน และ coding ครับ