स्विफ्ट में ओपन सोर्स: कैसे बनें योगदानकर्ता और करियर को बढ़ावा दें

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

ओपन सोर्स सिर्फ परोपकार के बारे में क्यों नहीं है?

\n\n

क्या आपने कभी Alamofire, Vapor या स्विफ्ट के रिपॉजिटरी को देखा है और सोचा है: "यह मेरे लिए बहुत जटिल है"? या, इसके विपरीत, इसमें अपनी सुविधा जोड़ना चाहते थे, लेकिन डर था कि आपके कोड का मजाक उड़ाया जाएगा? क्लब में आपका स्वागत है।

\n

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

\n

इस लेख में, हम एक वास्तविक रास्ता तोड़ेंगे: पहले कार्य की खोज से लेकर स्वीकृत पुल रिक्वेस्ट तक। कोई बकवास नहीं - केवल स्विफ्ट, GitHub और आपकी इच्छा।

\n\n

चरण 1. अपना प्रोजेक्ट खोजें

\n

सीधे स्विफ्ट कंपाइलर में योगदान देने की कोशिश न करें। उस चीज़ से शुरू करें जिसका आप स्वयं उपयोग करते हैं। अपने एप्लिकेशन का Package.swift खोलें - संभवतः वहाँ वे लाइब्रेरीज़ हैं जिनका आप प्रतिदिन उपयोग करते हैं। शुरुआत के लिए यहाँ कुछ दिशाएँ हैं:

\n
    \n
  • लोकप्रिय लाइब्रेरीज़: Alamofire, Kingfisher, SnapKit, SwiftyJSON.
  • \n
  • सर्वर स्विफ्ट: Vapor, Perfect, Kitura.
  • \n
  • Apple फ्रेमवर्क: SwiftNIO, Swift Collections, Swift Algorithms (Apple के आधिकारिक रिपॉजिटरी).
  • \n
  • उपकरण: SwiftLint, Sourcery, CocoaPods (हाँ, वहाँ स्विफ्ट है).
  • \n
\n

GitHub पर Issues टैब खोलें और लेबल के अनुसार फ़िल्टर करें: good first issue, help wanted, beginner. ये वे कार्य हैं जिन्हें प्रोजेक्ट के लेखक शुरुआती लोगों के लिए उपयुक्त मानते हैं।

\n\n

कैसे पता करें कि कार्य आपकी क्षमता का है?

\n

विवरण पढ़ें। अगर वहाँ लिखा है "टेस्ट जोड़ें" या "दस्तावेज़ीकरण में टाइपो सुधारें" - बिना सोचे ले लें। अगर कार्य के लिए मल्टीथ्रेडिंग या मेटाप्रोग्रामिंग के गहन ज्ञान की आवश्यकता है - तो बेहतर होगा कि इसे बाद के लिए टाल दें।

\n\n

चरण 2. सिर्फ दस्तावेज़ीकरण नहीं, बल्कि कोड पढ़ें

\n

कोड लिखने से पहले, प्रोजेक्ट की शैली का अध्ययन करें। स्विफ्ट समुदाय फ़ॉर्मेटिंग के मामले में काफी रूढ़िवादी है। CONTRIBUTING.md देखें (अगर यह नहीं है - तो यह एक बुरा संकेत है, लेकिन गंभीर नहीं)। पिछले कुछ स्वीकृत PR देखें - लोग वेरिएबल का नाम कैसे रखते हैं, स्पेस कहाँ लगाते हैं, क्या वे guard या if let का उपयोग करते हैं।

\n

Alamofire में विशिष्ट शैली का उदाहरण:

\n
public func request(\n    _ convertible: URLConvertible,\n    method: HTTPMethod = .get,\n    parameters: Parameters? = nil,\n    encoding: ParameterEncoding = URLEncoding.default,\n    headers: HTTPHeaders? = nil\n) -> DataRequest {\n    let request = Session.default.request(\n        convertible,\n        method: method,\n        parameters: parameters,\n        encoding: encoding,\n        headers: headers\n    )\n    return request\n}\n
\n

ध्यान दें: पैरामीटर के स्पष्ट लेबल, public का उपयोग केवल जहाँ आवश्यक हो, req जैसे कोई संक्षिप्त नाम नहीं। उसी तरह लिखने का प्रयास करें।

\n\n

चरण 3. Fork, clone, branch - बुनियादी बातें

\n

रिपॉजिटरी का fork करें, इसे लोकल रूप से क्लोन करें और एक सार्थक नाम के साथ एक नई ब्रांच बनाएं:

\n
git clone https://github.com/आपका_यूज़रनेम/Alamofire.git\ncd Alamofire\ngit checkout -b fix/typo-in-readme\n
\n

कभी भी main में काम न करें - यह बुरा व्यवहार है। ब्रांच को पैटर्न के अनुसार नाम दें: fix/..., feature/..., docs/...। इससे मेंटेनर्स को आपके योगदान का सार जल्दी से समझने में मदद मिलती है।

\n\n

चरण 4. समझदारी से कोड लिखें

\n

मान लीजिए, आपको एक issue मिला: "टाइमआउट इंटरवल के साथ URLRequest के लिए सुविधाजनक इनिशियलाइज़र जोड़ें"। कार्य सरल है - एक नया इनिशियलाइज़र जोड़ना। इसे जटिल न बनाएं। समाधान कुछ इस तरह दिख सकता है:

\n
extension URLRequest {\n    /// कस्टम टाइमआउट इंटरवल के साथ URLRequest बनाता है।\n    /// - पैरामीटर:\n    ///   - ur                

ब्लॉग

पुस्तक अनुशंसाएँ