टिप्पणी लिखने के लिए शुरुआती गाइड?


27

क्या उदीयमान डेवलपर्स के उद्देश्य से कोड टिप्पणी लिखने के लिए एक निश्चित मार्गदर्शिका है?

आदर्श रूप से, यह तब कवर होगा जब टिप्पणियों का उपयोग किया जाना चाहिए (और नहीं होना चाहिए) और क्या टिप्पणियों में होना चाहिए।

यह उत्तर :

आप क्या कर रहे हैं, इस पर टिप्पणी न करें, लेकिन आप ऐसा क्यों कर रहे हैं।

WHAT का समर्थन करने के लिए चर नामों के उचित विकल्प के साथ स्वच्छ, पठनीय और सरल कोड द्वारा देखभाल की जाती है। टिप्पणियाँ कोड को एक उच्च स्तर की संरचना दिखाती हैं जो कोड द्वारा ही नहीं (या कठिन है) शो कर सकती हैं।

करीब आता है, लेकिन अनुभवहीन प्रोग्रामर के लिए यह थोड़ा संक्षिप्त है (कई उदाहरणों और कोने के मामलों के साथ एक विस्तार उत्कृष्ट होगा, मुझे लगता है)।

अद्यतन : यहाँ उत्तर के अलावा, मुझे लगता है कि यह एक और प्रश्न का उत्तर अत्यधिक प्रासंगिक है।


मुझे लगता है कि हम जल्दी से एक ऐसी दुनिया में जा रहे हैं जहाँ लोग किसी भी तरह की टिप्पणी नहीं करते हैं। बेहतर (अधिक संभावना) बदतर के लिए। चुस्त।
एमके ०१

1
@ एमके: यदि ऐसा है (मैं इस जवाब से अधिक सहमत हूं ), तो एक गाइड बता रहा है कि टिप्पणी कैसे नहीं लिखनी चाहिए, और उन्हें क्यों टाला जाना चाहिए, यह उतना ही उपयोगी होगा। तथ्य की बात के रूप में, अधिक अलग दृष्टिकोण, बेहतर।
कैमरून

मुझे लगता है कि कोड पढ़ने की गति में सुधार करने के लिए छोटी टिप्पणियाँ बहुत उपयोगी हैं और हमेशा रहेंगी। मैं पूरी तरह से "बासी टिप्पणी" तर्क नहीं खरीदता, भले ही वे बासी हों, उनका ऐतिहासिक मूल्य होगा। मैं एक कोड बेस पर काम करता था, जिसमें कभी-कभार यहाँ और वहाँ विस्तृत टिप्पणियाँ होती थीं और कभी भी मुझे उस टिप्पणी से काट दिया जाता था जो तारीख की समस्या से बाहर थी।
15:01 बजे एमके 01

जवाबों:


38

आपको टिप्पणियों की सबसे बड़ी कमजोरी के बारे में पता होना चाहिए: वे बासी हो जाते हैं। यही है, कोड परिवर्तन के रूप में, डेवलपर्स कोड के साथ सिंक में रहने के लिए शायद ही कभी अपडेट अपडेट करते हैं। इसका मतलब है, कि आप उन पर कभी भरोसा नहीं कर सकते हैं और फिर भी कोड को पढ़ सकते हैं। इस कारण से, आपका कोड स्व-दस्तावेजीकरण होना चाहिए। आपको अपने फ़ंक्शन और चर नामों को इस तरह से चुनना चाहिए कि कोड गद्य की तरह पढ़े।

तो कोड क्या कर रहा है दस्तावेज़ नहीं है। सेल्फ-डॉक्यूमेंटिंग कोड का ध्यान रखना चाहिए। दस्तावेज़ आप क्यों कर रहे हैं। WHY आमतौर पर व्यवसाय से संबंधित नियम या वास्तुकला से संबंधित हैं और अक्सर बदल नहीं सकते हैं और WHAT में जितनी तेजी से बासी हो जाएंगे। दस्तावेज़ किनारे मामले। दस्तावेज़ अपवाद। दस्तावेज़ डिजाइन निर्णय। और सबसे महत्वपूर्ण बात यह है कि उन डिजाइन निर्णयों का दस्तावेजीकरण करें, जिन पर आपने विचार किया था, लेकिन उन पर अमल नहीं करने का निर्णय लिया (और उनका उपयोग करने के खिलाफ आपने निर्णय क्यों लिया)।


2
अंतिम एक बहुत महत्वपूर्ण है। कभी-कभी स्पष्ट समाधान को लागू करने के साथ बग / साइड-इफेक्ट होता है। दस्तावेज़ीकरण क्यों आपने किसी अन्य समाधान के साथ जाना चुना अगले डेवलपर को बग को फिर से प्रस्तुत करने से रोकता है जब वे "ठीक" लगते हैं तो आप खराब समाधान लगते हैं।
कैफीक नेक

2
एक और बिंदु, मेरी पहली नौकरी ने टिप्पणियों को कोड के रूप में महत्वपूर्ण माना। जब आप समीक्षा करते हैं तो टिप्पणियों के साथ-साथ कोड पढ़ने की आदत डालें और कोशिश करें कि जब भी संभव हो टिप्पणी अप-टू-डेट हो। यह बासी हो रही टिप्पणियों से बचने में मदद करता है और आपके कोड अप-टू-डेट में प्रलेखित व्यावसायिक नियम आदि रखता है।
एरिक हाइड्रिक

10

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


हालाँकि मैं इतना नहीं चाहता कि एक जटिल गणितीय सूत्र समझाया जाए क्योंकि मैं चाहता हूँ कि वह उचित गणितीय संकेतन (संभवतः TeX) में लिखे , इसके महत्व और स्रोत के स्पष्टीकरण के साथ। यदि आपको फॉर्मूला समझ में नहीं आता है, तो आपको उस कोड के साथ खिलवाड़ नहीं करना चाहिए जो इसे वैसे भी कुछ मूल्य की गणना करने के लिए उपयोग करता है, क्योंकि आप असाधारण रूप से खराब होने और सूक्ष्म (परिचय) होने की संभावना रखते हैं।
बजे एक CVn

कोड केवल यह कह सकता है कि कैसे , क्यों या क्यों नहीं । उसके लिए आपको टिप्पणियों की आवश्यकता है।

7

कोड पूरा, जैसा कि उल्लेख किया गया है, टिप्पणी लिखने पर विभिन्न दिशानिर्देश हैं। संक्षेप में, यह पीडीएल है और इसे संक्षेप में प्रस्तुत किया जा सकता है:

  1. अपने इरादे का वर्णन करें, न कि कोड क्या कर रहा है। जब तक आप कुछ चाल का उपयोग नहीं कर रहे हैं या आप कस्टम-कार्यान्वयन का उपयोग कर रहे हैं, तब तक कार्यान्वयन विवरण का वर्णन करने से बचें। उदाहरण के लिए, बिट्स को विभाजित करने के लिए शिफ्टिंग का उपयोग करना, कक्षा के सदस्यों तक पहुंचने के लिए पॉइंटर अंकगणित का उपयोग करना या कुछ पूल किए गए ऑब्जेक्ट के लिए कस्टम मेमोरी एलोकेटर का उपयोग करना।

  2. पहले छद्म कोड (यानी, टिप्पणियाँ) लिखें, फिर अपनी दिनचर्या / विधि / कार्य का वर्णन करने के बाद वास्तविक कोड में लिखें। उपयोग की जाने वाली भाषा उच्च-स्तरीय अभी तक विशिष्ट है, इसलिए यह क्रियात्मक हो सकती है

  3. कोड लिखने से पहले ही पता करें कि आपका कोड क्या कर रहा है

  4. वास्तविक कोड के समान ही टिप्पणियाँ दें

लक्ष्य लंबी घुमावदार असंबंधित टिप्पणियों से बचना है जो पुरानी हो सकती हैं, लेकिन कोड की मंशा और उद्देश्य को दर्शाते हुए टिप्पणियां करना है। उच्च स्तरीय छद्म कोड का उपयोग करने से कार्यान्वयन को लिखने से पहले अपनी सोच को स्पष्ट करने में मदद मिलती है।

यदि आप पुस्तक को ट्रैक नहीं करना चाहते हैं, तो GameDev.net [जो ​​पीडीएल] [1] पर एक लिंक है।


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

1
इसके अलावा, छद्म कोड टिप्पणी आपको बताएगी कि कोड क्या करना चाहिए। कोड आपको यह बताना चाहिए। स्यूडो कोड आपको यह नहीं बताएगा कि कोड क्यों कर रहा है। -1 दोस्त, क्षमा करें, लेकिन मैं दूसरे बिंदु से सहमत नहीं हो सकता, समय बदल गया है।
बाइनरी वॉरियर

1
बहस करने के लिए नहीं, लेकिन स्पष्टीकरण के अधिक - छद्म कोड आपके द्वारा लिखे गए कोड के इरादे को स्पष्ट करना है। मतलब, टिप्पणी कार्यान्वयन विवरणों के बारे में नहीं है (जैसे कि "स्टैक के शीर्ष पर एक्स जोड़ें"), लेकिन इसके बजाय कि कोड को क्या करना है (जैसे "विंडो को सब कुछ सामने दिखाई देता है")। जैसा कि आपने सही बताया है, आपको कोड के साथ टिप्पणियों को स्थानांतरित करने की आवश्यकता है। मैं कोड से असहमत हूं, आपको बता सकता है कि कोड क्या कर रहा है - हर समय। भले ही, एक सहायक / सटीक टिप्पणी (यदि मैं इसे अच्छी तरह से लिखने का प्रबंधन करता हूं!) एक लंबा रास्ता तय करता है। अंत में, अभी भी आई.एम.एच.ओ.
एक्स्ट्राकुन

3
कहा जाने वाला एक तरीका या फ़ंक्शन showWindowOnTop(window)हमेशा एक ही प्रकृति की टिप्पणी से बेहतर होगा, यह सब 2012 में पुरानी और बुरी सलाह है। 1) फ़ंक्शन / विधि नाम इरादे का वर्णन करते हैं, 2) छद्म कोड आधुनिक उपकरण श्रृंखला 3 के साथ खोखला व्यायाम है) टेस्ट आपको बताते हैं कि कोड को लिखने से पहले आपको क्या करना चाहिए, 4) अच्छी तरह से नामित कोड टिप्पणियों से बेहतर है जो खराब नामित कोड से मेल नहीं खाते

6

मैं सिर्फ एक सरल और सामान्य सिद्धांत का पालन करता हूं: आपकी टिप्पणियों को यह नहीं कहना चाहिए कि कोड क्या कर रहा है, लेकिन यह क्यों कर रहा है। री-फैक्टरिंग और कोड कम्प्लीट बुक पर मार्टिन फाउलर आर्टिकल और बुक में जानकारी का भार है, लेकिन अफसोस यह मेरे ज्ञान के लिए संक्षिप्त रूप में नहीं है।


1

मेरा सुझाव कुछ भी बिना किसी टिप्पणी के कुछ कोड लिखना होगा, और फिर इससे दूर चलना होगा। एक साल में वापस आकर इसे पढ़ें। जिस भाग को आप आसानी से समझ नहीं पाते हैं वह वह हिस्सा है जिस पर आपको टिप्पणी करनी चाहिए।


1
हाह, हाँ ;-) यह विशेष रूप से उपयोगी सलाह नहीं है, हालांकि - शायद यह एक टिप्पणी होनी चाहिए थी?
कैमरून

वह हिस्सा जो आपको समझ में नहीं आता है आपको छोटे बेहतर नामित भागों में लिखा जाना चाहिए। मुख्य कारण टिप्पणियों को कोड में रखा जाता है, फ़ंक्शन / तरीके लंबे समय तक होते हैं और कई छोटे स्व-दस्तावेजीकरण टुकड़े होने चाहिए।

0

मुझे वास्तव में पसंद है कि इवान टॉड एकमात्र उपयोगी टिप्पणी श्रेणियों ( अपने ब्लॉग से उद्धृत ) पर अपना दृष्टिकोण कैसे प्रस्तुत करते हैं :

  • टिप्पणियां समझाती हैं कि क्यों, क्या नहीं। ये सबसे उपयोगी हैं।
  • कुछ शब्दों के साथ टिप्पणियाँ बताती हैं कि कोड का निम्नलिखित विशाल हिस्सा क्या करता है। ये नेविगेशन और रीडिंग के लिए उपयोगी हैं।
  • एक डेटा संरचना की घोषणा में टिप्पणियाँ, यह बताते हुए कि प्रत्येक क्षेत्र का क्या अर्थ है। ये अक्सर अनावश्यक होते हैं, लेकिन कभी-कभी यह सहज रूप से मेमोरी में अवधारणा को मैप करने के लिए संभव नहीं होता है, और मैपिंग का वर्णन करने के लिए टिप्पणियां आवश्यक हैं।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.