2009-08-03 9 views
6

क्या आपके पास ऐसी आदत है कि जब आप कोडिंग कर रहे हैं, तो आप दस्तावेज़ भी लिखते हैं, और सुनिश्चित करें कि कि वे सिंक हो रहे हैं।प्रोग्रामिंग करते समय प्रलेखन कैसे लिखें

कैसे प्राप्त कर सकते हैं? आप क्या लिखते हैं? कार्य तार्किक? संकल्पना? या अन्य सर्वोत्तम प्रथाओं? अग्रिम में धन्यवाद!

+0

ऐसा लगता है कि यह आपके पिछले प्रश्न का एक प्रकार है: http://stackoverflow.com/questions/1220319/how-to-design-software – Amber

+0

यह वही नहीं है। पिछला यह है कि प्रबंधक के रूप में कैसे डिजाइन किया जाए। और यह सवाल मैं एक प्रोग्रामर बनना चाहता हूं, मुझे क्या चिह्नित करना चाहिए। धन्यवाद – MemoryLeak

+0

आह, मैं देखता हूं। दोनों के phrasing के कारण यह मेरे लिए बिल्कुल स्पष्ट नहीं था। स्पष्टीकरण देने के लिए धन्यवाद। – Amber

उत्तर

5

मैं एक पायथन प्रोग्रामर हूं और मैं doctests लिखता हूं, जो एक पायथन मॉड्यूल है जो आपको प्रत्येक फ़ंक्शन के दस्तावेज़ स्ट्रिंग में फ़ंक्शन के उपयोग के उदाहरण के रूप में परीक्षण लिखने की अनुमति देता है। here से उदाहरण पर एक नज़र डालें:

def factorial(n): 
    """Return the factorial of n, an exact integer >= 0. 

    If the result is small enough to fit in an int, return an int. 
    Else return a long. 

    >>> [factorial(n) for n in range(6)] 
    [1, 1, 2, 6, 24, 120] 
    """ 

दो पिछले लाइनों समारोह के उपयोग का एक उदाहरण हैं, और doctest मॉड्यूल का उपयोग कर क्रियान्वित किया जा सकता। इस तरह, आप इसे पूरा करते हैं:

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

मैं आमतौर पर स्टब फ़ंक्शन बनाने और सिद्धांत लिखने के साथ शुरू करता हूं, यह जानने के लिए कि प्रत्येक फ़ंक्शन कैसे काम करेगा और अपेक्षित इनपुट/आउटपुट कौन से हैं; इस दृष्टिकोण के लिए धन्यवाद, मेरे पास हमेशा लिखने वाले प्रत्येक फ़ंक्शन और मॉड्यूल का कम से कम एक छोटा दस्तावेज़ है।

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

+0

ठीक है, उत्तर स्वीकार करने के लिए धन्यवाद! :) मुझे यकीन है कि कई अन्य भाषाओं के लिए सबसे अच्छा कामकाज भी मौजूद है। – dalloliogm

0

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

अन्यथा एक विकी जो आपकी टीम सहयोग को ट्रैक करने में मदद करती है, भी उपयोगी है। अक्सर ये चीजें "सूचना पूल" में बदल जाती हैं जहां लोग सिस्टम के बारे में कुछ बताते हैं। इन्हें दस्तावेज बनाने के लिए भी इस्तेमाल किया जा सकता है।

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

+0

एक्सएमएल शैतान की भाषा है। मैं डाउनवोट करने के लिए प्रेरित हूं ... – hasen

7

लिखने के दौरान मैं इसे शुरू करने और बदलने से पहले प्रलेखन संरचना लिखता हूं।

http://en.wikipedia.org/wiki/Design_by_contract 
  • स्वीकार्य और अस्वीकार्य इनपुट मानों या प्रकार, और उनके अर्थ
  • वापसी मान या प्रकार, और उनके अर्थ
  • त्रुटि: मैं एक संरचना क्या दस्तावेज में लिखने के रूप में अनुबंध द्वारा डिजाइन का उपयोग और अपवाद की स्थिति मूल्यों या प्रकार, कि हो सकता है, और उनके अर्थ
  • दुष्प्रभाव
  • पूर्व शर्त है, जो उपवर्गों कमजोर हो सकती है (लेकिन मजबूत बनाने नहीं)
  • Postconditions, जो उपवर्गों को मजबूत कर सकते हैं (लेकिन कमजोर नहीं)
  • Invariants, जो उपवर्गों को मजबूत कर सकते हैं (लेकिन कमजोर नहीं)
  • (बहुत कम) प्रदर्शन की गारंटी देता है, उदाहरण के लिए
+0

मैं वास्तव में इस जगह पर जाना चाहता हूं और इसे पहले से ही करने के लिए प्रशंसा करता हूं। –

1

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

इस तरह से प्रलेखन लगभग स्वचालित रूप से किया जाता है क्योंकि मैं इस पर काम करते समय अपने कोड पर टिप्पणी करना पसंद करता हूं।

0

यह प्रलेखन के संदर्भ पर निर्भर करता है। यदि आप इसे अन्य डेवलपर्स के लिए दस्तावेज कर रहे हैं तो मैं यह विचार करता हूं कि टिप्पणियों के साथ सभ्य इकाई परीक्षण और परिवर्तनीय नामकरण कोड कोड स्वयं दस्तावेज़ होगा।

ग्राहकों के उपयोग के लिए बाहरी एपीआई के संदर्भ में, तो मैं सामान्य रूप से आइटम को दस्तावेज करने का दृष्टिकोण लेता हूं जब मैंने उस कार्यक्षमता को लिखना समाप्त कर दिया है।

  • बस और आसानी से इलेक्ट्रॉनिक रूप से
  • ले लो डॉक्स तस्वीरें ड्रा ध्वनि निबंध नहीं काटने के रूप में - जैसे - उपयोग एक आंतरिक ब्लॉग/विकी आदि स्क्रीन शॉट्स और विचारों के साथ जानकारी हड़पने के लिए संभव के रूप में स्वयं कुछ दस्तावेज़ीकृत रूप

  • 2
    1. मेक कोड । मन मानचित्र

    इससे मुझे दस्तावेज में मदद मिलती है क्योंकि मैं साथ जाता हूं।

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

    मुझे दस्तावेज़ लिखने से नफरत है - इसलिए जब मैं साथ जाता हूं तो मैं विचार इकट्ठा करता हूं।

    1

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

    संबंधित मुद्दे