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