ช่วงวันหยุดทำการอ่านหนังสือ 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 ครับ