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