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