क्या आपको सब कुछ या सिर्फ सबसे अधिक दस्तावेज़ करना चाहिए?


22

यह कुछ भी विवादास्पद विषय लगता है कि "जावाबीन" सिंटैक्स प्राप्त करने और खेतों के लिए बसने सहित सब कुछ दस्तावेज करने के लिए: लोग कहते हैं कि इसकी अनावश्यक रूप से लंबी और दोहराव तोड़ने वाली DRY (खुद को दोहराएं नहीं) , कि नामकरण सम्मेलन सब कुछ समझा सकता है , और यह कोड / प्रलेखन को बंद कर देता है। कभी-कभी वे तर्क काम करते हैं। लेकिन अन्य बार, आप इसे समाप्त करते हैं:

वैकल्पिक शब्द

ऊपर स्रोत परियोजनाओं को खोलने के लिए आम है जो साहसपूर्वक उन सिद्धांतों का पालन करते हैं। आप पूरी तरह से बेकार प्रलेखन के साथ रह गए हैं । जो कुछ भी चल रहा है उसके बारे में कुछ भी स्पष्ट नहीं करता है, संभावित प्रभाव, या यहां तक ​​कि अपेक्षित मूल्य क्या है (क्या यह शून्य या कभी शून्य हो सकता है? मुझे नहीं पता; जावदोक मुझे नहीं बताता)।

तो मुझे कब दस्तावेज़ देना चाहिए? क्या मैं सब कुछ दस्तावेज़ करता हूं, भले ही यह कभी-कभार कोड को कोड कर दे? या क्या मैं अपनी आँखों से कुछ भी दस्तावेज नहीं करता, यह "स्पष्ट" है?


3
एक निश्चित डिग्री के लिए यह एक नामकरण समस्या दिखाता है जैसे getDate getCreationDate या getExpiryDate होना चाहिए या जो कभी भी डोमेन में समझ में आता है। बेशक नामकरण रामबाण नहीं है।
जे.के.

नोट: यह CV समीक्षा कतार में आया था। मुझे लगता है कि इसे खुला रखा जाना चाहिए - सवाल ऑन-टॉपिक है (डॉक्यूमेंटेशन एसडीएलसी है) और उत्तर वास्तव में अच्छे हैं और एक उचित मात्रा में स्पेस का जवाब देते हैं (यानी बहुत व्यापक नहीं)

जवाबों:


24

दस्तावेज़ सब कुछ है कि दस्तावेज़ के लिए समझ में आता है

एक आदर्श दुनिया में, हाँ, आप सब कुछ दस्तावेज करेंगे। हालाँकि, पृथ्वी पर, हमारे पास समय सीमा, सुविधा कटौती, परिवारों और दोस्तों की यात्रा करने, छुट्टियां लेने, दिन में केवल 24 घंटे और साल में केवल 365 दिन हैं। वहाँ सब कुछ दस्तावेज़ करने के लिए पर्याप्त समय नहीं है। इसलिए, आशा है कि, जो कुछ भी आप कर सकते हैं उसे दस्तावेज़ करें (आप नहीं करेंगे), लेकिन अपने रुपये के लिए सबसे धमाकेदार प्राप्त करें:

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

27
सबसे पहले, सब कुछ है कि समझ में नहीं आता दस्तावेज़
ysolik

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

1
@ysolik मैं सहमत हूं, लेकिन मुझे लगता है कि उनका मतलब 'डॉक्यूमेंट से समझ में आने वाली हर चीज को डॉक्यूमेंट करना है'
एलन पीयर्स

3
@Alan और @Ryan: टिप्पणी रयान के विरोध के लिए नहीं थी। यह सिर्फ शब्दों पर एक नाटक था :) Btw, मैं रयान के हर बात से सहमत हूं, सिवाय इसके कि "एक आदर्श दुनिया में, हां, आप सब कुछ को बढ़ावा देंगे।" एक आदर्श दुनिया में आपको कुछ भी दस्तावेज़ करने की आवश्यकता नहीं होगी, कोड स्व-दस्तावेजीकरण और आत्म-स्पष्टीकरण होगा।
ysolik

1
@ysolik ओह यार, वह अंतिम आदर्श दुनिया होगी।
रियान हेस

8

जब तक आप किसी और को कुछ भी समझाने की आवश्यकता महसूस किए बिना उसे पढ़ नहीं सकते, तब तक दस्तावेज रखें।


6

यह पिछले सप्ताह द डेली डब्ल्यूटीएफ पर प्रलेखन के संबंध में एक शानदार लेख था । मुझे लगता है कि यह सब कुछ कहता है, इसलिए मैं सिर्फ लिंक छोड़ दूंगा:

http://thedailywtf.com/Articles/Documentation-Done-Right.aspx

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


4

वास्तव में यह निर्भर करता है कि इसे पढ़ने वाले दर्शकों के लिए कोड कितना पठनीय है। यह पता लगाएं कि ऑडियंस आपके कोड को पढ़ने के लिए कौन है, और कोई ऐसा व्यक्ति है जो उस प्रोफ़ाइल से मिलता है जो आपके कोड को पढ़ता है।

एक और तरीका यह होगा कि आप एक सप्ताह के बाद अपने स्वयं के कोड की समीक्षा करें और देखें कि क्या आप अभी भी समझते हैं कि आपने क्या किया है, यदि आप ऐसा नहीं करते हैं, तो इसे दस्तावेज़ करें और दो सप्ताह या इसी समय में कोड की समीक्षा करें।


4

जब मैं एक स्पष्ट और व्यापक दस्तावेज की सराहना करता हूं, तो स्व-दस्तावेजीकरण कोड जैसा कुछ भी नहीं है। तो, नीचे की रेखा (मेरे लिए) है:

(स्रोत कोड) प्रलेखन पर बहुत संदेह है; कोशिश करें और कोड में सुधार करके इसे बेमानी बनाएं, लेकिन आवश्यक होने पर स्पष्ट रूप से और पूरी तरह से दस्तावेजीकरण करने से न चूकें।

बेशक, कुछ परिस्थितियों में, than कोड क्या कर रहा है ’यह समझाने के अलावा अन्य कारणों से प्रलेखन की आवश्यकता हो सकती है (जैसे: बड़ी टीम का आधार, संगठन के मानक, और इसी तरह आगे)।



2

दस्तावेज़ीकरण पर मेरा सुझाव यह है कि यदि कोड में कुछ भी फैंसी है, तो वह उस दस्तावेज़ में है जिसे अद्यतित रखा जाना चाहिए। फैंसी बहुत व्याख्या के अधीन है, मेरे दिमाग में कुछ ऐसा किया जाता है जिसमें किसी विशेष फैशन में साइड इफेक्ट्स हो सकते हैं, जिन पर ध्यान दिया जाना चाहिए, उदाहरण के लिए, यह सुनिश्चित करने के लिए कुछ किया जा सकता है कि पोते की वस्तुओं को नोड्स के पेड़ से गुजरने में संसाधित किया जाए। सभी वंशजों पर कुछ परीक्षण करने के लिए। क्यों कुछ खास तरीके से किया गया था, यह जानने के लिए कि कुछ का उपयोग करने का एक अच्छा कारण था या नहीं, यह जानने का एक अच्छा तरीका हो सकता है।


1

सरल शब्दों में, अब डेवलपर्स की मदद करने के लिए प्रलेखन है, और भविष्य में अनुरक्षक।

यदि आप उस सरल अधिकतम को याद करते हैं, तो प्रलेखन का स्तर आत्म-परिभाषित होना चाहिए।

दस्तावेज़ीकरण, दस्तावेज़ के लिए, समय की बर्बादी है ... लेकिन आज आप जो कर रहे हैं उसे स्पष्ट करना किसी के लिए पांच साल में अपने कोड को रिवर्स-इंजीनियर करने से ज्यादा मददगार है।


0

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

दोहराव से बचने के लिए मैं इस तरह की जानकारी के साथ मुख्य एपीआई कक्षाओं का भारी दस्तावेज करता हूं। तब केवल दस्तावेज़ कार्यान्वयन और आंतरिक जहां गैर-स्पष्ट या असंगत व्यवहार है। मुझे लगता है कि यह अच्छी तरह से काम करता है क्योंकि यह एपीआई के उपयोगकर्ताओं को सबसे अधिक मदद और प्रलेखन की आवश्यकता है, यह आम तौर पर लोगों को यह सुनिश्चित करने के लिए सुरक्षित है कि कार्यान्वयन को संशोधित करने के लिए एपीआई को पता है ताकि यह ज्ञान हो।

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

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.