परिचय: Swift प्रोजेक्ट के लिए दस्तावेज़ीकरण क्यों ज़रूरी है?
\nगुणवत्तापूर्ण दस्तावेज़ीकरण आपके Swift प्रोजेक्ट का एक महत्वपूर्ण हिस्सा है, न कि केवल एक अतिरिक्त सुविधा। चाहे आप CocoaPods के लिए लाइब्रेरी बना रहे हों, iOS ऐप लिख रहे हों या macOS ऐप, दस्तावेज़ीकरण इनमें मदद करता है:
\n- \n
- नए डेवलपर्स को जल्दी शामिल करना (ऑनबोर्डिंग); \n
- बग्स की संख्या कम करना API की स्पष्ट समझ से; \n
- कोड का पुन: उपयोग बढ़ाना; \n
- आपके प्रोडक्ट की पेशेवर छवि बनाना। \n
इस लेख में हम Swift प्रोजेक्ट के लिए दस्तावेज़ीकरण लिखने की पूरी प्रक्रिया को कवर करेंगे: बुनियादी कमेंट्स से लेकर DocC के साथ उन्नत दस्तावेज़ीकरण जनरेशन तक।
\n\n1. Swift कोड दस्तावेज़ीकरण की मूल बातें
\n1.1 Swift में कमेंट्स: तीन स्तर
\nSwift दस्तावेज़ीकरण के लिए तीन प्रकार के कमेंट्स सपोर्ट करता है:
\n- \n
- एकल-पंक्ति (
//) — त्वरित नोट्स के लिए; \n - बहु-पंक्ति (
/* ... */) — टेक्स्ट ब्लॉक के लिए; \n - दस्तावेज़ीकरण (
///या/** ... */) — दस्तावेज़ीकरण जनरेट करने के लिए। \n
दस्तावेज़ीकरण लिखने के लिए केवल तीसरे प्रकार का उपयोग करें। उदाहरण:
\n\n/// दिए गए त्रिज्या के आधार पर वृत्त का क्षेत्रफल निकालता है।\n///\n/// - Parameter radius: वृत्त की त्रिज्या (0 से अधिक होनी चाहिए)।\n/// - Returns: दो दशमलव स्थानों तक सटीक वृत्त का क्षेत्रफल।\n/// - Throws: `InvalidRadiusError`, यदि त्रिज्या <= 0 है।\nfunc calculateCircleArea(radius: Double) throws -> Double {\n guard radius > 0 else {\n throw InvalidRadiusError.negativeOrZero\n }\n return Double.pi * radius * radius\n}\n\n1.2 मुख्य दस्तावेज़ीकरण टैग
\nSwift दस्तावेज़ीकरण कमेंट्स के अंदर मानक Markdown टैग सपोर्ट करता है:
\n- \n
- Parameter [name]:— पैरामीटर का विवरण; \n - Returns:— रिटर्न वैल्यू का विवरण; \n - Throws:— एरर का विवरण; \n - Note:— अतिरिक्त नोट; \n - Warning:— चेतावनी। \n
फ़ॉर्मेटिंग के लिए Markdown का उपयोग करने का उदाहरण:
\n\n/// एक व्यक्तिगत अभिवादन बनाता है।\n///\n/// स्वागत संदेश जनरेट करने के लिए इस विधि का उपयोग करें।\n/// \n/// **उपयोग का उदाहरण:**\n/// ```swift\n/// let greeting = makeGreeting(name: "राहुल")\n/// print(greeting) // "नमस्ते, राहुल!"\n/// ```\n///\n/// - Parameter name: उपयोगकर्ता का नाम।\n/// - Returns: अभिवादन के साथ स्ट्रिंग।\nfunc makeGreeting(name: String) -> String {\n return "नमस्ते, \\(name)!"\n}\n\n2. क्लासेस, स्ट्रक्चर्स और प्रोटोकॉल का दस्तावेज़ीकरण
\n2.1 टाइप्स का दस्तावेज़ीकरण
\nआपके प्रोजेक्ट के हर पब्लिक टाइप का विवरण होना चाहिए। यह लाइब्रेरी और फ्रेमवर्क के लिए विशेष रूप से महत्वपूर्ण है:
\n\n/// सिस्टम में उपयोगकर्ता को दर्शाता है।\n///\n/// इस क्लास में उपयोगकर्ता की बुनियादी जानकारी और\n/// प्रमाणीकरण के तरीके शामिल हैं। यह `Codable` और `Equatable` प्रोटोकॉल को सपोर्ट करता है।\nclass User: Codable, Equatable {\n /// उपयोगकर्ता का अद्वितीय पहचानकर्ता।\n let id: UUID\n \n /// उपयोगकर्ता का नाम (2 से 50 अक्षरों तक)।\n let name: String\n \n /// उपयोगकर्ता का ईमेल।\n let email: String\n \n /// उपयोगकर्ता की आयु (यदि दी गई है)।\n var age: Int?\n}\n\n2.2 प्रोटोकॉल का दस्तावेज़ीकरण
\nप्रोटोकॉल पर विशेष ध्यान दें, क्योंकि वे सभी कार्यान्वयनों के लिए अनुबंध निर्धारित करते हैं:
\n\n/// उन ऑब्जेक्ट्स के लिए प्रोटोकॉल जिन्हें JSON में सीरियलाइज़ किया जा सकता है।\n///\n/// अपने टाइप्स में JSON सीरियलाइज़ेशन सपोर्ट जोड़ने के लिए इस प्रोटोकॉल को लागू करें।\nprotocol JSONSerializable {\n /// ऑब्जेक्ट को JSON के लिए डिक्शनरी में बदलता है।\n ///\n