स्व-दस्तावेजीकरण कोड (सेल्फ डॉक्यूमेंटिंग): Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
{{Short description|Source code written to enable use by others without prior experience}}
{{Short description|Source code written to enable use by others without prior experience}}
[[कंप्यूटर प्रोग्रामिंग]] में '''सेल्फ डॉक्यूमेंटिंग (स्व-दस्तावेजीकरण)''' सोर्स कोड और यूजर इंटरफेस, नेमिंग प्रोग्रामिंग और [[संरचित प्रोग्रामिंग|स्ट्रक्चर्ड प्रोग्रामिंग]] का अनुसरण करते हैं जो पूर्व  ज्ञान के बिना ही सिस्टम के उपयोग को सक्षम बनाता है।<ref name="Schach_2011"/>[[वेब विकास|वेब]] डेवलपमेंट में सेल्फ डॉक्यूमेंटिंग एक ऐसी वेबसाइट को संदर्भित करता है जो पब्लिक डॉक्यूमेंसन के माध्यम से इसके निर्माण की सम्पूर्ण प्रक्रिया को प्रदर्शित करता है, और जो पब्लिक डॉक्यूमेंसन डेवलपमेंट प्रक्रिया का पार्ट है।{{Citation needed|date=August 2018}}
[[कंप्यूटर प्रोग्रामिंग]] में '''सेल्फ डॉक्यूमेंटिंग (सेल्फ डॉक्यूमेंटिंग)''' सोर्स कोड और यूजर इंटरफेस, नेमिंग प्रोग्रामिंग और [[संरचित प्रोग्रामिंग|स्ट्रक्चर्ड प्रोग्रामिंग]] का अनुसरण करते हैं जो पूर्व  ज्ञान के बिना ही सिस्टम के उपयोग को सक्षम बनाता है।<ref name="Schach_2011"/>[[वेब विकास|वेब]] डेवलपमेंट में सेल्फ डॉक्यूमेंटिंग एक ऐसी वेबसाइट को संदर्भित करता है जो पब्लिक डॉक्यूमेंसन के माध्यम से इसके निर्माण की सम्पूर्ण प्रक्रिया को प्रदर्शित करता है, और जो पब्लिक डॉक्यूमेंसन डेवलपमेंट प्रक्रिया का पार्ट है।{{Citation needed|date=August 2018}}


==उद्देश्य==
==उद्देश्य==
स्व-दस्तावेजीकरण प्रणालियों के लिए सामान्यतः बताए गए उद्देश्यों में शामिल हैं:
सेल्फ डॉक्यूमेंटिंग प्रणालियों के लिए सामान्यतः बताए गए उद्देश्यों में शामिल हैं:


* सोर्स कोड को पढ़ने और समझने में आसान बनाएं<ref name="Paul_2002_Symbols"/>* विरासत प्रणालियों को बनाए रखने या विस्तारित करने के लिए आवश्यक प्रयास को कम करें<ref name="Paul_2002_Symbols"/>* किसी सिस्टम के उपयोगकर्ताओं और डेवलपर्स के लिए [[टिप्पणी (कंप्यूटर प्रोग्रामिंग)]] या [[सॉफ्टवेयर मैनुअल]] जैसे द्वितीयक दस्तावेज़ स्रोतों से परामर्श लेने की आवश्यकता को कम करें<ref name="Paul_2002_Symbols"/>* स्व-निहित ज्ञान प्रतिनिधित्व के माध्यम से [[स्वचालन]] की सुविधा प्रदान करना
* सोर्स कोड को रीड और समझने में आसान बनाएं<ref name="Paul_2002_Symbols"/>
*लिगेसी प्रणालियों को बनाए रखने या विस्तारित करने के लिए आवश्यक प्रयास को कम करें<ref name="Paul_2002_Symbols" />
*किसी सिस्टम के यूजर और डेवलपर्स के लिए कोड कमेंट या [[सॉफ्टवेयर मैनुअल]] जैसे द्वितीयक डॉक्यूमेंट स्रोतों से परामर्श लेने की आवश्यकता को कम करें<ref name="Paul_2002_Symbols" />
*स्व-निहित ज्ञान के प्रदर्शन के माध्यम से [[स्वचालन]] की सुविधा प्रदान करना


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


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


* नामकरण परंपरा की एकरूपता (प्रोग्रामिंग)<ref name="Paul_2002_Symbols"/>* गाढ़ापन<ref name="Paul_2002_Symbols"/>* एप्लिकेशन का दायरा और सिस्टम आवश्यकताएँ
* नेमिंग कन्वेंशनों की एकसमानता (प्रोग्रामिंग)<ref name="Paul_2002_Symbols"/>
*कंसिस्टेंसी(संगतता)<ref name="Paul_2002_Symbols" />  
*एप्लिकेशन का बिस्तार और सिस्टम की आवश्यकताएँ


==उदाहरण==
==उदाहरण==
नीचे स्व-दस्तावेजीकरण कोड का एक बहुत ही सरल उदाहरण दिया गया है, जिसमें मानव पाठकों के लिए कोड के तर्क को और अधिक स्पष्ट बनाने के लिए स्पष्ट टिप्पणियों के स्थान पर नामकरण परंपराओं का उपयोग किया गया है।
नीचे सेल्फ डॉक्यूमेंटिंग कोड का एक बहुत ही सरल उदाहरण दिया गया है, जिसमें मानव पाठकों के लिए कोड के तर्क को और अधिक स्पष्ट बनाने के लिए स्पष्ट टिप्पणियों के स्थान पर नामकरण का उपयोग किया गया है।


<syntaxhighlight lang="c">
<syntaxhighlight lang="c">
Line 39: Line 44:


== आलोचना ==
== आलोचना ==
[[जेफ रस्किन]] ने स्व-दस्तावेजीकरण कोड में विश्वास की आलोचना करते हुए कहा कि कोड इस तर्क को स्पष्ट नहीं कर सकता है कि कार्यक्रम क्यों लिखा जा रहा है या इसे इस तरह से क्यों लागू किया गया है।<ref name="Raskin_2005"/>
[[जेफ रस्किन]] ने सेल्फ डॉक्यूमेंटिंग कोड में विश्वास की आलोचना करते हुए कहा कि कोड इस तर्क को स्पष्ट नहीं कर सकता है कि प्रोग्राम क्यों लिखा जा रहा है या फिर इसे इस तरह से क्यों लागू किया गया है।<ref name="Raskin_2005"/>





Revision as of 23:57, 8 August 2023

कंप्यूटर प्रोग्रामिंग में सेल्फ डॉक्यूमेंटिंग (सेल्फ डॉक्यूमेंटिंग) सोर्स कोड और यूजर इंटरफेस, नेमिंग प्रोग्रामिंग और स्ट्रक्चर्ड प्रोग्रामिंग का अनुसरण करते हैं जो पूर्व ज्ञान के बिना ही सिस्टम के उपयोग को सक्षम बनाता है।[1]वेब डेवलपमेंट में सेल्फ डॉक्यूमेंटिंग एक ऐसी वेबसाइट को संदर्भित करता है जो पब्लिक डॉक्यूमेंसन के माध्यम से इसके निर्माण की सम्पूर्ण प्रक्रिया को प्रदर्शित करता है, और जो पब्लिक डॉक्यूमेंसन डेवलपमेंट प्रक्रिया का पार्ट है।[citation needed]

उद्देश्य

सेल्फ डॉक्यूमेंटिंग प्रणालियों के लिए सामान्यतः बताए गए उद्देश्यों में शामिल हैं:

  • सोर्स कोड को रीड और समझने में आसान बनाएं[2]
  • लिगेसी प्रणालियों को बनाए रखने या विस्तारित करने के लिए आवश्यक प्रयास को कम करें[2]
  • किसी सिस्टम के यूजर और डेवलपर्स के लिए कोड कमेंट या सॉफ्टवेयर मैनुअल जैसे द्वितीयक डॉक्यूमेंट स्रोतों से परामर्श लेने की आवश्यकता को कम करें[2]
  • स्व-निहित ज्ञान के प्रदर्शन के माध्यम से स्वचालन की सुविधा प्रदान करना

सम्मेलन

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

व्यावहारिक विचार

कुछ व्यावहारिक विचार हैं जो इस बात को प्रभावित करते हैं कि सेल्फ डॉक्यूमेंटिंग प्रणाली के उद्देश्यों को कितनी व्यवस्थित तरीके से संपादित किया जा सकता है।

  • नेमिंग कन्वेंशनों की एकसमानता (प्रोग्रामिंग)[2]
  • कंसिस्टेंसी(संगतता)[2]
  • एप्लिकेशन का बिस्तार और सिस्टम की आवश्यकताएँ

उदाहरण

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

size_t count_alphabetic_chars(const char *text)
{
    if (text == NULL)
        return 0;

    size_t  count = 0;

    while (*text != '\0')
    {
        if (is_alphabetic(*text))
            count++;
        text++;
    }

    return count;
}


आलोचना

जेफ रस्किन ने सेल्फ डॉक्यूमेंटिंग कोड में विश्वास की आलोचना करते हुए कहा कि कोड इस तर्क को स्पष्ट नहीं कर सकता है कि प्रोग्राम क्यों लिखा जा रहा है या फिर इसे इस तरह से क्यों लागू किया गया है।[3]


यह भी देखें

संदर्भ

  1. Schach, Stephen R. (2011). Object-Oriented and Classical Software Engineering (8 ed.). McGraw-Hill Professional. pp. 505–507. ISBN 978-0-07337618-9. OCLC 477254661.
  2. 2.0 2.1 2.2 2.3 2.4 Paul, Matthias R. (2002-04-09). "Re: [fd-dev] ANNOUNCE: CuteMouse 2.0 alpha 1". freedos-dev. Archived from the original on 2020-03-24. Retrieved 2020-03-24. […] almost any numeric value in source code should be replaced by a corresponding symbol. This would greatly improve the self-explanatory aspect of source code and significantly ease maintenance of the code in the long run, as it would enable one to search for symbols to find relations between different excerpts of the code. […]
  3. Raskin, Jef (2005-03-18). "Comments Are More Important Than Code - The thorough use of internal documentation is one of the most-overlooked ways of improving software quality and speeding implementation". ACM Queue. Development. ACM, Inc. 3 (2). Archived from the original on 2020-03-24. Retrieved 2019-12-22. [1][2]


अग्रिम पठन