स्विफ्ट उन्नत दस्तावेज़ीकरण: ऑटोडॉक से साइट जनरेशन तक
\n\nकोड का दस्तावेज़ीकरण करना केवल एक औपचारिकता नहीं है, बल्कि प्रोजेक्ट के भविष्य में एक निवेश है। प्रारंभिक स्तर पर /// प्रकार की टिप्पणियाँ पर्याप्त होती हैं। हालाँकि, पेशेवर iOS/macOS प्रोजेक्ट्स के लिए एक व्यवस्थित दृष्टिकोण की आवश्यकता होती है: स्वचालित जनरेशन, Xcode के साथ एकीकरण, Markdown समर्थन और पूर्ण दस्तावेज़ीकरण वेबसाइटों का निर्माण। इस लेख में, हम स्विफ्ट प्रोजेक्ट्स के दस्तावेज़ीकरण की उन्नत तकनीकों पर चर्चा करेंगे, जिसमें Swift DocC के साथ काम करना, कस्टम एक्सटेंशन और टीम के लिए सर्वोत्तम अभ्यास शामिल हैं।
1. Swift DocC: दस्तावेज़ीकरण का आधुनिक मानक
\n\nSwift DocC (Documentation Compiler) एक उपकरण है जो Xcode 13+ में निर्मित है, जो कोड में टिप्पणियों और अतिरिक्त Markdown फ़ाइलों से दस्तावेज़ीकरण बनाने की अनुमति देता है। यह एक स्थिर HTML साइट उत्पन्न करता है जिसे प्रकाशित किया जा सकता है या Xcode में देखा जा सकता है।
\n\nDocC के लिए मूल सिंटैक्स ट्रिपल स्लैश /// या /** */ का उपयोग करता है:
/// वृत्त के क्षेत्रफल की गणना करता है।\n///\n/// - Parameter radius: वृत्त की त्रिज्या।\n/// - Returns: वृत्त का क्षेत्रफल।\n/// - Throws: `InvalidArgumentError.negativeRadius` यदि त्रिज्या ऋणात्मक है।\n///\n/// # उपयोग का उदाहरण:\n/// ```swift\n/// let area = try calculateCircleArea(radius: 5.0)\n/// print(area) // 78.5398...\n/// ```\nfunc calculateCircleArea(radius: Double) throws -> Double {\n guard radius >= 0 else {\n throw InvalidArgumentError.negativeRadius\n }\n return Double.pi * radius * radius\n}\n\nउन्नत DocC की प्रमुख क्षमताएँ:
\n\n- \n
- अन्य प्रतीकों के लिंक: हाइपरलिंक बनाने के लिए
``MyClass``या<doc:MyFunction>का उपयोग करें। \n - श्रेणियाँ और समूह:
## Topicsके साथ दस्तावेज़ीकरण को तार्किक खंडों में विभाजित करें। \n - दृश्य सामग्री: Markdown के माध्यम से चित्र और आरेख सम्मिलित करें। \n
- एक्सटेंशन समर्थन: लेखों, ट्यूटोरियल्स और API संदर्भों के लिए अलग-अलग
.mdफ़ाइलें बनाएँ। \n
Xcode में साइट जनरेट करने के लिए Product > Build Documentation चुनें। कमांड लाइन के लिए उपयोग करें:
\n\nxcrun docc convert Sources/YourPackage.docc \\\n --output-path ./docs \\\n --hosting-base-path /your-repo-name\n\n2. दस्तावेज़ीकरण का संगठन: संरचना और नेविगेशन
\n\nउन्नत दस्तावेज़ीकरण केवल टिप्पणियों का संग्रह नहीं है। यह एक सुविचारित सूचना वास्तुकला है। DocC में इसके लिए दस्तावेज़ीकरण कैटलॉग (.docc) का उपयोग किया जाता है।
फ़ोल्डर Documentation.docc की अनुशंसित संरचना:
Documentation.docc/\n├── YourPackage.md # पैकेज का मुख्य पृष्ठ\n├── GettingStarted.md # "आरंभ करना" लेख\n├── AdvancedUsage.md # "उन्नत उपयोग" लेख\n├── Tutorials/ # ट्यूटोरियल्स फ़ोल्डर\n│ ├── BasicTutorial.tutorial\n│ └── AdvancedTutorial.tutorial\n└── Resources/ # चित्र, आरेख\n └── architecture.png\n\nमुख्य पृष्ठ YourPackage.md का उदाहरण:
# ``MySwiftLibrary``\n\niOS पर नेटवर्क अनुरोधों और कैशिंग के लिए लाइब्रेरी।\n\n## Topics\n\n### मूल बातें\n- <doc:GettingStarted>\n- ``NetworkManager``\n- ``CacheService``\n\n### उन्नत विषय\n- <doc:AdvancedUsage>\n- ``RequestInterceptor``\n\n### त्रुटि प्रबंधन\n- ``NetworkError``\n- ``CacheError``\n\nऐसी संरचना उपयोगकर्ताओं को जल्दी से आवश्यक जानकारी खोजने में मदद करती है, और डेवलपर्स को दस्तावेज़ीकरण को आसानी से अद्यतित रखने में मदद करती है।
\n\n3. कस्टम एक्सटेंशन और मेटाडेटा
\n\nजटिल प्रोजेक्ट्स के लिए मानक DocC पर्याप्त नहीं हो सकता है। उन्नत टीमें कस्टम एक्सटेंशन का उपयोग करती हैं:
\n\n- \n