मैं हाथ में समस्या के लिए डिजाइनिंग का एक बड़ा विश्वासी हूं और उन सभी मामलों का अनुमान लगाने की कोशिश करके अपने डिजाइन को नहीं उड़ा रहा हूं जिन्हें आपको पूरा करना है क्योंकि "किसी दिन हमें इसकी आवश्यकता हो सकती है"।
मूल रूप से, विशिष्ट आवश्यकताओं की एक सूची दी गई है, इसके खिलाफ डिजाइन, हालांकि, इसका मतलब यह नहीं है कि आपको ऐसा नहीं करना चाहिए:
- अपने समाधान में उन पहलुओं को कोडित करने के बजाय अपने डिज़ाइन के पहलुओं को विन्यास योग्य बनाएं। या तो रनटाइम पर पारित मापदंडों के माध्यम से या स्टार्टअप पर (या HUP'ing के बाद) बाहरी कॉन्फ़िगरेशन के माध्यम से पढ़ा जाता है।
- जादू कोड के साथ अपने कोड का फीता,
- यह देखने के लिए एक नज़र रखने से बचें कि क्या कुछ पहले से ही लिखा हुआ है जिसे आप पुन: उपयोग कर सकते हैं, हो सकता है कि मौजूदा समाधान को अपनाने के बाद एक दृष्टिकोण प्रदान करें जो मौजूदा स्थिति के साथ-साथ नई आवश्यकता के लिए उपयुक्त हो।
"संभव वायदा" के लिए डिजाइनिंग के साथ मुख्य समस्या यह है कि आप हमेशा केवल अनुमान लगा रहे हैं। संभवतः शिक्षित अनुमान लगाते हैं, लेकिन "जब धक्का को धक्का लगता है" तो यह अभी भी अनुमानों की एक श्रृंखला है।
ऐसा करने से आपको अपने मामले को सामान्य स्थिति (एस) में फिट करने के लिए अपने समाधान को निचोड़ने की बहुत वास्तविक संभावना है, बजाय इसके कि आप अपनी ज्ञात आवश्यकता (ओं) द्वारा परिभाषित विशिष्ट समस्या को हल कर सकें।
वह क्या कह रहा है? "जब आपके पास एक हथौड़ा होता है, तो सब कुछ नाखून की तरह दिखाई देने लगता है।"
काश मेरे पास हर बार एक पाउंड होता है जो मैंने किसी को कहते सुना है, "लेकिन यह एक समाधान है जो उन सामान्य मामलों के लिए अधिक अनुकूल है जो हम भविष्य में देख सकते हैं।"