บทสรุป (Conclusion)
หนังสือเล่มนี้เกี่ยวกับเรื่องเดียว: ความซับซ้อน การจัดการความซับซ้อนถือเป็นความท้าทายที่สำคัญที่สุดในการออกแบบซอฟต์แวร์ มันทำให้ระบบยากต่อการสร้างและดูแลรักษา และบ่อยครั้งทำให้ระบบทำงานช้าลงด้วย ตลอดการอ่านหนังสือเล่มนี้ ผมพยายามอธิบายถึงสาเหตุหลักที่นำไปสู่ความซับซ้อน เช่น ความพึ่งพากันและการปกปิดข้อมูล ผมได้กล่าวถึงสัญญาณเตือนต่างๆ ที่ช่วยให้คุณระบุความซับซ้อนที่ไม่จำเป็น เช่น การรั่วไหลของข้อมูล เงื่อนไขข้อผิดพลาดที่ไม่ต้องการ หรือชื่อที่หลากหลายเกินไป ผมได้นำเสนอแนวคิดทั่วไปบางประการที่คุณสามารถใช้เพื่อสร้างระบบซอฟต์แวร์ที่เรียบง่ายกว่า เช่น การสร้าง class ที่ลึกและครอบคลุม การกำหนด error ให้หมดไป และการแยกเอกสาร Interface ออกจากเอกสารการสร้างต่อ และสุดท้ายนี้ ผมได้กล่าวถึงความทะเยอทะยานในการลงทุนที่จำเป็นสำหรับการสร้างการออกแบบที่เรียบง่าย
ด้านลบของข้อเสนอแนะเหล่านี้ก็คือ พวกมันสร้างงานเพิ่มเติมในขั้นตอนแรกของโครงการ นอกจากนี้ หากคุณยังไม่คุ้นเคยกับการคิดเกี่ยวกับปัญหาการออกแบบ คุณจะทำงานช้าลงมากขึ้นขณะที่คุณเรียนรู้เทคนิคการออกแบบที่ดี หากสิ่งเดียวที่สำคัญสำหรับคุณคือการทำให้โค้ดของคุณทำงานได้เร็วที่สุด การคิดเกี่ยวกับการออกแบบจะดูเหมือนงานที่น่าเบื่อซึ่งขัดขวางเป้าหมายที่แท้จริงของคุณ
ในทางกลับกัน หากการออกแบบที่ดีถือเป็นเป้าหมายที่สำคัญสำหรับคุณ แนวคิดต่างๆ ในหนังสือเล่มนี้ควรทำให้การเขียนโปรแกรมสนุกสนานมากขึ้น การออกแบบเป็นปริศนาที่น่าสนใจ: ปัญหาใดสามารถแก้ไขได้ด้วยโครงสร้างที่เรียบง่ายที่สุด? มันสนุกที่จะสำรวจวิธีการต่างๆ และเป็นความรู้สึกที่ยอดเยี่ยมเมื่อค้นพบวิธีแก้ปัญหาที่เรียบง่ายและมีประสิทธิภาพทั้งไปพร้อมกัน การออกแบบที่สะอาด เรียบง่าย และชัดเจนเป็นสิ่งที่สวยงาม
นอกจากนี้ การลงทุนที่คุณทำในการออกแบบที่ดีจะให้ผลตอบแทนอย่างรวดเร็ว Module ที่คุณกำหนดไว้อย่างรอบคอบตั้งแต่ต้นของโครงการจะช่วยประหยัดเวลาของคุณในภายหลังเมื่อคุณนำมันมาใช้ซ้ำแล้วซ้ำอีก เอกสารที่ชัดเจนที่คุณเขียนหกเดือนที่แล้ว จะช่วยประหยัดเวลาของคุณเมื่อคุณกลับมาที่โค้ดเพื่อเพิ่มฟีเจอร์ใหม่ เวลาที่คุณใช้ในการเรียนรู้และปรับปรุงทักษะการออกแบบของคุณจะช่วยจ่ายค่าใช้สอยของตัวเองด้วย: เมื่อทักษะและประสบการณ์ของคุณเพิ่มขึ้น คุณจะพบว่าคุณสามารถสร้างการออกแบบที่ดีได้เร็วขึ้นเรื่อยๆ การออกแบบที่ดีไม่ได้ใช้เวลานานกว่าการออกแบบแบบรวดเร็ว เมื่อคุณรู้วิธีการแล้ว
การได้รับคนเป็นนักออกแบบที่ดีคือคุณได้ใช้เวลาส่วนใหญ่ของคุณในระยะการออกแบบซึ่งเป็นเรื่องสนุก นักออกแบบที่ไม่ดีใช้เวลาส่วนใหญ่ของพวกเขาไล่จับจุดผิดพลาดในโค้ดที่ซับซ้อนและเปราะบาง หากคุณปรับปรุงทักษะการออกแบบของคุณ คุณจะไม่เพียงแต่สร้างซอฟต์แวร์ที่มีคุณภาพสูงขึ้นได้เร็วขึ้น แต่ยังทำให้กระบวนการพัฒนาซอฟต์แวร์เป็นเรื่องที่สนุกสนานมากขึ้นด้วย