ओपन-सोर्स प्रोजेक्ट्स विकसित करने से मैंने 6 सबक सीखे

एक डेटा वैज्ञानिक का परिप्रेक्ष्य

ओपन-सोर्स एक अद्भुत अवधारणा है! संपूर्ण समुदाय के स्रोतों, कौशलों और ज्ञान को एकत्रित करके, ऐसे उपकरण बनाए जा सकते हैं जिन्हें हम अलग से नहीं बना सकते थे। इन सहयोगों से जो उपकरण निकलते हैं वे वास्तव में उनके भागों के योग से कहीं अधिक हैं।

परिणामस्वरूप, हम डेटा वैज्ञानिक इस स्वतंत्र रूप से उपलब्ध सॉफ़्टवेयर का उपयोग करते हैं जो इतनी सारी तकनीकों को चला रहा है जबकि अभी भी इसके विकास में शामिल होने का अवसर है।

पिछले कुछ वर्षों में, मैं ओपन-सोर्स में शामिल होने के लिए काफी भाग्यशाली था और मुझे कई पैकेज विकसित करने और उनका प्रबंधन करने का अवसर मिला!

ओपन-सोर्स विकसित करना केवल कोडिंग से कहीं अधिक है

इस दौरान, बहुत सारी बाधाएँ दूर करनी थीं और सबक सीखने थे। पेचीदा निर्भरता और एपीआई डिज़ाइन विकल्पों से लेकर उपयोगकर्ता आधार के साथ संचार तक।

ओपन-सोर्स पर काम करना, चाहे एक लेखक, अनुरक्षक या डेवलपर के रूप में, काफी चुनौतीपूर्ण हो सकता है! इस लेख के साथ, मैं इस क्षेत्र में अपने कुछ अनुभव साझा करता हूं, जिससे उम्मीद है कि ओपन-सोर्स विकसित करने के इच्छुक लोगों को मदद मिलेगी।

जब आप ओपन-सोर्स सॉफ़्टवेयर बनाते हैं, तो आप आमतौर पर केवल अपने लिए पैकेज नहीं बना रहे होते हैं। सभी प्रकार की विभिन्न पृष्ठभूमियों के उपयोगकर्ता आपके सॉफ़्टवेयर का उपयोग कर रहे होंगे। उचित दस्तावेज़ीकरण उन उपयोगकर्ताओं को आरंभ करने में काफी मदद करता है।

हालाँकि, आपके पैकेज की उपयोगिता पर दस्तावेज़ीकरण के प्रभाव को कम मत समझिए! आप इसका उपयोग जटिल एल्गोरिदम को समझाने, व्यापक ट्यूटोरियल देने, उपयोग के मामले दिखाने और यहां तक ​​कि इंटरैक्टिव उदाहरणों की अनुमति देने के लिए भी कर सकते हैं।

विशेष रूप से डेटा विज्ञान से संबंधित सॉफ़्टवेयर को समझना मुश्किल हो सकता है जब इसमें जटिल एल्गोरिदम शामिल हों। इन व्याख्याओं को एक कहानी की तरह अपनाने से अक्सर मुझे उन्हें अधिक सहज बनाने में मदद मिली है।

मेरा विश्वास करें, अच्छा दस्तावेज़ लिखना अपने आप में एक कौशल है।

एक और लाभ यह है कि ठोस दस्तावेज लिखने से मुद्दों पर खर्च होने वाला समय कम हो जाता है। यदि उपयोगकर्ताओं को आपके दस्तावेज़ में उत्तर मिल जाते हैं तो उनके पास प्रश्न पूछने का कारण कम हो जाता है।

कैसे का एक सिंहावलोकन कीबर्ट कार्य दस्तावेज़ में पाया जाता है।

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

आपका उपयोगकर्ता आधार, समुदाय, आपके सॉफ़्टवेयर का एक महत्वपूर्ण घटक है। चूँकि हम ओपन-सोर्स विकसित कर रहे हैं, इसलिए यह कहना सुरक्षित है कि हम चाहते हैं कि वे विकास में शामिल हों।

समुदाय के साथ जुड़कर आप उन्हें मुद्दों और बगों को साझा करने के लिए लुभाते हैं, बल्कि आगे के विकास के लिए अनुरोध और बेहतरीन विचार भी पेश करते हैं! ये सभी उनके लिए कुछ न कुछ बनाने में मदद करते हैं।

ओपन-सोर्स समुदाय वास्तव में इसके भागों के योग से कहीं अधिक है

BERTopic में कई मुख्य विशेषताएं, जैसे ऑनलाइन विषय मॉडलिंग, चूंकि इसके उपयोगकर्ताओं द्वारा अत्यधिक अनुरोध किया गया था, इसलिए इन्हें लागू किया गया है। परिणामस्वरूप, समुदाय काफी सक्रिय है और मुद्दों का पता लगाने और नई सुविधाएँ विकसित करने में जबरदस्त मदद कर रहा है।

समुदाय द्वारा सुविधा अनुरोधों को कार्यान्वित करने में काफी मदद मिलती है! चर्चा का एक अंश यहाँ उत्पन्न करें.

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

समुदाय के साथ बातचीत करने से सीखने का एक बड़ा अवसर भी मिलता है। वे ही आपको बताते हैं कि उन्हें कौन सा डिज़ाइन पसंद है या नहीं। कभी-कभी, मैंने एक ही मुद्दे को कुछ महीनों के दौरान कई बार सामने आते देखा है। यह इंगित करता है कि मुझे डिज़ाइन पर पुनर्विचार करना चाहिए क्योंकि यह उतना उपयोगकर्ता-अनुकूल नहीं था जितना मैंने अनुमान लगाया था!

इसके अलावा, ओपन-सोर्स प्रोजेक्ट विकसित करने से मुझे अन्य डेवलपर्स के साथ सहयोग करने का अवसर मिला है।

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

यदि आप आंतरिक रूप से प्रेरित हैं तो यह निश्चित रूप से मदद करता है लेकिन यह सुनिश्चित करने में अभी भी काफी समय लगता है कि सब कुछ एक साथ बना हुआ है।

सौभाग्य से, आप प्रश्नों का उत्तर देते समय, उपयोग के मामलों का प्रदर्शन आदि करते समय मदद के लिए अपने समुदाय की ओर देख सकते हैं।

पिछले कुछ वर्षों के दौरान, जब परिवर्तनों को तोड़ने की बात आती है तो मैंने थोड़ा अधिक निश्चिंत रहना सीख लिया है। खासकर जब बात निर्भरता की हो, तो कभी-कभी आप बहुत कुछ कर सकते हैं!

यह जानना कि आपका पैकेज कितनी बार उपयोग किया जाता है, यह समझने में बहुत मदद करता है कि यह कितना लोकप्रिय है। हालाँकि, कई लोग अभी भी किसी पैकेज की गुणवत्ता और लोकप्रियता के साथ तुलना करने के लिए जीथब सितारों का उपयोग कर रहे हैं।

सही मीट्रिक परिभाषित करना सुनिश्चित करें. उचित मार्केटिंग के कारण GitHub सितारों को बढ़ा-चढ़ाकर पेश किया जा सकता है। कई सितारों का मतलब लोकप्रियता नहीं होता.

डेटा वैज्ञानिकों के रूप में, हमें पहले यह समझना चाहिए कि हम वास्तव में क्या माप रहे हैं। GitHub सितारे एक उपयोगकर्ता द्वारा किसी पैकेज को एक सितारा देने से अधिक कुछ नहीं हैं। इसका मतलब यह भी नहीं है कि उन्होंने सॉफ़्टवेयर का उपयोग किया है या यह वास्तव में काम कर रहा है!

KeyBERT के लिए डाउनलोड की संख्या. जीथब सितारों की तुलना में बहुत बेहतर संकेतक।

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

उदाहरण के लिए, यह बहुत अच्छा है यदि आपके पैकेजों को प्रदर्शित किया जाए हैकर इस समाचार लेकिन यह आपको नहीं बताता कि इसका लगातार उपयोग किया जाता है या नहीं।

एक मनोवैज्ञानिक के रूप में, मैं अपने पैकेजों के डिज़ाइन पर बहुत अधिक ध्यान केंद्रित करता हूँ। इसमें दस्तावेज़ीकरण और ट्यूटोरियल जैसी चीज़ें शामिल हैं लेकिन यह मेरे कोड करने के तरीके का भी अनुवाद करता है।

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

विषय मॉडलिंग का मॉड्यूलर डिज़ाइन बर्टविषय.

नई सुविधाओं को विकसित करते समय एक मनोवैज्ञानिक के दृष्टिकोण को अपनाने से यह जानना बहुत आसान हो गया है कि किस पर ध्यान केंद्रित करना है। उपयोगकर्ता क्या खोज रहे हैं? मैं इस तरह से कोड कैसे कर सकता हूं जो एल्गोरिदम की व्याख्या करता हो? उपयोगकर्ता वास्तव में इस पैकेज का उपयोग क्यों कर रहे हैं? मेरे कोड के प्रमुख नुकसान क्या हैं?

औसत उपयोगकर्ता को समझने के लिए समय निकालने से इसे अपनाने में मदद मिलती है

उपरोक्त सभी अक्सर एक बुनियादी लेकिन महत्वपूर्ण नियम की ओर ले जाते हैं;
इसे अति सरल रखें

व्यक्तिगत रूप से, यदि मुझे कोई नया पैकेज स्थापित करना और उपयोग करना मुश्किल लगता है, तो मेरे द्वारा इसे अपने वर्कफ़्लो में अपनाने की संभावना कम है।

यदि आप भी मेरी तरह एआई, डेटा साइंस या मनोविज्ञान के शौकीन हैं, तो कृपया बेझिझक मुझे इसमें शामिल करें लिंक्डइन या मुझे फ़ॉलो करें ट्विटर. आप मेरी कुछ सामग्री यहां भी पा सकते हैं व्यक्तिगत वेबसाइट.

स्रोत क्रेडिट के बिना सभी छवियां लेखक द्वारा बनाई गई थीं

6 सबक जो मैंने ओपन-सोर्स प्रोजेक्ट विकसित करने से सीखे, स्रोत से पुनर्प्रकाशित https://towardsdatascience.com/6-lessons-i-learned-from-developing-open-source-projects-4617e26f247c?source=rss—-7f60cf5620c9—4 माध्यम से https://towardsdatascience.com/feed

<!–

->

समय टिकट:

से अधिक ब्लॉकचेन कंसल्टेंट्स

ईरानी एसोसिएशन स्थिर क्रिप्टो विनियमन के लिए सरकार की योजना के रूप में विदेशी व्यापार में क्रिप्टो के व्यापक उपयोग की मांग करता है

स्रोत नोड: 1636661
समय टिकट: अगस्त 23, 2022

मेटा 'ट्यूलिप' पेश करता है, एक बाइनरी सीरियलाइजेशन प्रोटोकॉल जो एआई और मशीन लर्निंग वर्कलोड के लिए प्रोटोकॉल विश्वसनीयता को संबोधित करके डेटा स्कीमेटाइजेशन के साथ सहायता करता है

स्रोत नोड: 1755699
समय टिकट: नवम्बर 12, 2022