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