ฉันเชื่อในการออกแบบสำหรับปัญหาที่เกิดขึ้นและไม่ได้ออกแบบงานของคุณโดยพยายามเดาทุกกรณีที่คุณต้องให้ความสำคัญเพราะ "สักวันหนึ่งเราอาจต้องใช้มัน"
โดยพื้นฐานแล้วจะมีรายการข้อกำหนดเฉพาะออกแบบกับสิ่งนั้นไม่ได้หมายความว่าคุณไม่ควร:
- ทำให้แง่มุมของการออกแบบของคุณสามารถกำหนดค่าได้มากกว่าการเขียนโค้ดแบบยาก ๆ ในโซลูชันของคุณ อาจผ่านพารามิเตอร์ที่ส่งไปที่รันไทม์หรือผ่านการกำหนดค่าภายนอกอ่านเมื่อเริ่มต้น (หรือหลังจาก HUP'ing)
- ถักรหัสของคุณด้วยตัวเลขเวทย์มนตร์
- หลีกเลี่ยงการดูว่ามีสิ่งที่เขียนไว้แล้วว่าคุณสามารถนำกลับมาใช้ใหม่ได้หรือไม่หลังจากปรับแก้ปัญหาที่มีอยู่แล้วเพื่อให้แนวทางที่เหมาะสมกับสถานการณ์ที่มีอยู่รวมถึงข้อกำหนดใหม่
ปัญหาหลักของการออกแบบเพื่อ "อนาคตที่เป็นไปได้" คือคุณคาดเดาอยู่เสมอ อาจจะทำการเดาที่มีการศึกษา แต่ "เมื่อดันมาถึง" มันก็เป็นเพียงชุดของการเดา
ด้วยการทำเช่นนี้คุณมีความเป็นไปได้จริงมากในการบีบโซลูชันของคุณให้พอดีกับกรณีทั่วไปมากกว่าที่จะแก้ปัญหาเฉพาะหน้าตามที่กำหนดโดยความต้องการที่คุณรู้จัก
พูดอย่างนั้นเหรอ? "เมื่อสิ่งที่คุณมีคือค้อนทุกสิ่งจะเริ่มดูเหมือนเล็บ"
ฉันหวังว่าฉันจะได้เงินหนึ่งปอนด์สำหรับทุกครั้งที่ฉันได้ยินใครบางคนพูดว่า "แต่มันเป็นวิธีการแก้ปัญหาที่ปรับได้มากขึ้นสำหรับกรณีทั่วไปที่เราอาจเห็นในอนาคต"