कोड डॉक्यूमेंटेशन कहाँ रखें?


13

मैं वर्तमान में कोड प्रलेखन लिखने के लिए दो प्रणालियों का उपयोग कर रहा हूं (C ++ का उपयोग कर रहा हूं):

  • कोड और डॉक्स ऑक्सीजन प्रारूप का उपयोग करते हुए कक्षा के सदस्यों के बारे में दस्तावेज़ीकरण जोड़ा जाता है। एक सर्वर पर Doxygen को स्रोतों पर चलाया जाता है ताकि आउटपुट को वेब ब्राउज़र में देखा जा सके
  • अवलोकन पृष्ठ (कक्षाओं का एक सेट का वर्णन करते हुए, एप्लिकेशन की संरचना, उदाहरण कोड, ...) एक विकी में जोड़ा जाता है

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

मेरा सहकर्मी अब सब कुछ Doxygen में डालने का सुझाव देता है, क्योंकि हम तब इसमें सब कुछ के साथ एक बड़ी मदद फ़ाइल बना सकते हैं (Microsoft के HTML वर्कशॉप या Qt असिस्टेंट का उपयोग करके)। मेरी चिंता यह है कि Doxygen-style प्रलेखन का संपादन बहुत कठिन है (विकी की तुलना में), खासकर जब आप तालिकाओं, छवियों को जोड़ना चाहते हैं, ... (या Doxygen के लिए 'पूर्वावलोकन' उपकरण है जिसे आपको उत्पन्न करने की आवश्यकता नहीं है कोड से पहले आप परिणाम देख सकते हैं?)

बड़े खुले स्रोत (या बंद स्रोत) परियोजनाएं अपने कोड प्रलेखन लिखने के लिए क्या उपयोग करती हैं? क्या उन्होंने इसे भी Doxygen-style और Wiki के बीच विभाजित किया है? या वे एक और प्रणाली का उपयोग करते हैं?

प्रलेखन को उजागर करने का सबसे उपयुक्त तरीका क्या है? एक वेब सर्वर / ब्राउज़र, या एक बड़ी (कई 100 एमबी) मदद फ़ाइल के माध्यम से?

कोड डॉक्यूमेंट लिखते समय आप कौन सा दृष्टिकोण अपनाते हैं?


ओपन सोर्स पायथन प्रोजेक्ट्स रीडहेडशॉट पर अपने कोड डॉक्यूमेंटेशन डालते हैं
user16764

जवाबों:


9

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

दूसरी ओर, आपको यह सोचना होगा कि क्या ये फायदे आपके विकी की सहजता को प्रभावित करते हैं। संपादित / उत्पन्न / परिष्कृत / संपादित करें चक्र फिर से उत्पन्न आपके विकी के साथ तेज हो सकता है। मुझे लगता है कि आप अपने अवलोकन पृष्ठों को एक अलग doxygen उपप्रोजेक्ट के रूप में रखते हुए doxygen के साथ उस चक्र को बहुत तेज़ी से प्राप्त कर सकते हैं। आप doxygen की बाहरी लिंकिंग क्षमताओं का उपयोग कर सकते हैं , जो "त्वरित पूर्वावलोकन" के लिए एक प्रतिस्थापन नहीं है, निश्चित रूप से, लेकिन उस दिशा की ओर एक कदम है। मैंने खुद से ऐसा नहीं किया है, लेकिन मुझे लगता है कि आपको अपने लिए प्रयास करना चाहिए अगर आप जानना चाहते हैं कि क्या यह आपके मामले में काम करता है।

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


4

पहले कोड डॉक्यूमेंटेशन का उपयोग करें। यदि संभव हो तो विकी और अन्य विधियों को जोड़ें

मुझे पता है, यह मुश्किल है, इसे बनाए रखना है।

व्यावहारिक उत्तर:

व्यावहारिक रूप से, पहली बात यह है कि डेवलपर्स करते हैं, इसके कोड की जांच करते हैं।

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

एक डेवलपर के रूप में, जिसने कई परियोजनाओं और ग्राहकों में काम किया है, मैं बाहरी प्रलेखन को जोड़ने के लिए संभव है, लेकिन, इसका सामान्य कार्यभार बहुत अधिक है, और विकी का समर्थन करने में सक्षम नहीं है।

कभी-कभी, प्रोजेक्ट मैनेजर, और अन्य बॉस, प्रलेखन की परवाह नहीं करते हैं, कभी-कभी अन्य डेवलपर्स नहीं करते हैं।

और, सबसे अच्छा मैं कर सकता हूँ, इसके कोड में कुछ टिप्पणियाँ जोड़ने के लिए।

शुभ लाभ


3

कुछ अन्य प्रणालियों का उपयोग करते हैं - उदाहरण के लिए पायथन के स्फिंक्स पर एक नज़र डालें , उनके पास एक ऑल-इन-वन डॉक्स सिस्टम है जो सब कुछ बनाता है (यह सी / सी ++ के लिए भी काम करता है)

मैं हमेशा प्रलेखन को कोड के लिए अलग होने के रूप में समझता हूं, डॉक्स ऑक्सीजन महान है, लेकिन यह एपीआई के अवलोकन के लिए है, न कि 'प्रलेखन' के लिए। उसके लिए, एक विकी महान है, लेकिन मैं ASCIIDOC का उपयोग करना पसंद करता हूं और कोड के साथ स्रोत नियंत्रण में उस के परिणामों को संग्रहीत करना चाहता हूं, मुख्यतः क्योंकि मैं पीडीएफ को अन्य लोगों (जैसे परीक्षक, ग्राहक, आदि) को सौंप सकता हूं।


ASCIIDOC का उल्लेख करने के लिए धन्यवाद। इसका जायजा लेंगे।
पैट्रिक

2

Doxygen आपको PDF, HTML, विकी पेज बनाने की अनुमति देता है, लगभग हर चीज जो आप सोच सकते हैं।

मेरी निजी प्राथमिकता डॉक्सीजेन और विकी दोनों की है और स्क्रिप्ट या कुछ और जाँचने के लिए जब वे विचलन करते हैं।



1

लक्षित दर्शक

मुझे लगता है कि इस प्रश्न का उत्तर देते समय आपको वास्तव में यह पूछने की आवश्यकता है कि इस प्रलेखन को पढ़ने के लिए कौन है। एक डेवलपर के पास उपयोगकर्ता या यहां तक ​​कि एक व्यापार विश्लेषक की सकल आवश्यकताएं हैं।

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

रखरखाव

इस दस्तावेज़ीकरण के स्रोत को कहां रखा जाए, यह आपके दर्शकों पर निर्भर करेगा, और आपके दर्शकों के लिए कौन लिख रहा है।

  • केवल डेवलपर्स का एक घर है? कोड में सब कुछ रखें। यह इसे अद्यतन करने के लिए प्रोत्साहित करेगा। आपको एक ऐसी संस्कृति पर काम करने की आवश्यकता होगी जो कोड परिवर्तन के रूप में महत्वपूर्ण होने के लिए प्रलेखन अपडेट को प्रोत्साहित करती है।
  • डेवलपर्स और प्रलेखन लेखकों का एक घर है? जिम्मेदारियों को विभाजित करें। डेवलपर्स के लिए डेवलपर ओरिएंटेड टूलिंग का उपयोग करें, डॉक्यूमेंटेशन लेखकों के लिए टूलिंग टूल का उपयोग करें।

जहां संभव हो, उस कोड के उदाहरणों को सुनिश्चित करें, या उपयोग के मामलों को निष्पादित किया जा सकता है। उनके निष्पादन और आंतरिक रूप से ध्वज विफलता को स्वचालित करें। संभावना है कि ये पृष्ठ खराब या खराब प्रलेखन हैं।

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

समेकित प्रलेखन

एकीकरण के लिए कुछ प्रलेखन का उत्पादन करने की आवश्यकता हो सकती है, लेकिन ध्यान दें कि केवल उपयोगकर्ता को उन सभी दस्तावेज़ों तक पहुंचने के लिए एक ही स्थान की उम्मीद है जो उन्हें चाहिए।

API विश्लेषक, डिज़ाइन स्पेक्स और उपयोग परिदृश्यों के साथ अलग-अलग दस्तावेज़, या किसी वेबसाइट के अलग-अलग अनुभागों में स्थित होने से व्यावसायिक विश्लेषक काफी खुश हैं।

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

आपका मुकदमा

ईमानदार होने के लिए, आपके विकी में प्रलेखन संभवतः आपके कोड-बेस में उसी तरह का प्रलेखन नहीं है। यह भी विलय करने के लिए समझ में नहीं आ सकता है।

दूसरी ओर दोनों को एकीकृत करके कुछ सरल तरीकों से वहन किया जा सकता है।

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

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


0

यदि आप ASCII का उपयोग कर रहे हैं, तो आपको अपने स्रोत कोड के उच्च बिट में अपने दस्तावेज़ को छिपाने के लिए स्टोर करना चाहिए! तब केवल उपयोगकर्ताओं के सबसे चतुर (पढ़ने योग्य) आपके डॉक्स का उपयोग करने का अवसर होता है।


0

एक अच्छी तरह से परिभाषित, आसानी से निर्यात करने योग्य, पोर्टेबल प्रारूप में प्रलेखन होने से वास्तविक लाभ हो सकता है। यदि स्फिंक्स मर जाता है (असंभाव्य) तो मैं सिर्फ दूसरी प्रणाली में परिवर्तित हो जाऊंगा, जो मुझे लगता है कि एक स्क्रिप्ट करने योग्य कार्य होगा। विकी से डेटा ले जाना (संभवतः एक मालिकाना प्रारूप में डेटाबेस में संग्रहीत) एक दर्द हो सकता है।

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