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