2009-01-28 13 views
17

सी ++ में सार्वजनिक शीर्षलेख फ़ाइलों को बनाते समय आपको सबसे अच्छा अभ्यास क्या लगता है?सी/सी ++ हैडर फ़ाइल प्रलेखन

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

  2. मान लें कि मैं संक्षिप्त या बड़े पैमाने पर दस्तावेज जैसे कुछ के साथ जाता हूं। मुझे javadoc जैसा कुछ चाहिए जहां मैं वापसी मान, पैरामीटर इत्यादि दस्तावेज करता हूं। सी ++ में इसके लिए सबसे अच्छा सम्मेलन क्या है? जहां तक ​​मुझे याद है कि डॉक्सिजन जावा डॉक-स्टाइल प्रलेखन के साथ अच्छी चीजें करता है, लेकिन क्या इसके लिए कोई अन्य सम्मेलन और उपकरण हैं, मुझे जवाडोक शैली दस्तावेज के लिए जाने से पहले अवगत होना चाहिए?

उत्तर

42

आमतौर पर मैं कार्यान्वयन में कार्यान्वयन (कैसे समारोह करता है) के लिए इंटरफ़ेस के लिए प्रलेखन डाल (पैरामीटर, वापसी मान, क्या समारोह करता है) इंटरफेस फ़ाइल (ज) में, और प्रलेखन फ़ाइल (.c, .cpp, .m)।

मैं अपनी घोषणा से ठीक पहले कक्षा का एक सिंहावलोकन लिखता हूं, इसलिए पाठक के पास तत्काल मूलभूत जानकारी है।

मैं जिस उपकरण का उपयोग करता हूं वह डॉक्सिजन है।

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

  2. डॉक्सिजन मेरे अनुभव से ठीक है।

3

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

दस्तावेज को एक ऐसे रूप में लिखें जो अधिकांश संपादक पहचानते हैं; सी ++ के लिए यह // के बजाय/* लगता है। इस तरह आप इसे फोल्ड कर सकते हैं और केवल घोषणाएं देख सकते हैं।

1

शायद आपको gtk-doc में रुचि होगी। यह "सेटअप करने के लिए एक सा अजीब और का उपयोग करें" हो सकता है लेकिन आप स्रोत कोड से एक अच्छा API दस्तावेज़ प्राप्त कर सकते हैं, इस तरह लग रही:

String Utility Functions

4

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

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

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

यह मेरा दो सेंट है।

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