seungwon

ओपनसोर्स योगदान अनुभव

  • लेखन भाषा: कोरियाई
  • आधार देश: दक्षिण कोरियाcountry-flag
  • आईटी

रचना: 2025-05-03

अपडेट: 2025-05-27

रचना: 2025-05-03 00:00

अपडेट: 2025-05-27 09:42

यह लेख इस बारे में है कि ओपन-सोर्स (Open Source) में रुचि रखने वालों को प्रेरित करना है, लेकिन जो डरते थे कि 'क्या मैं कर सकता हूँ?', 'मुझे कहाँ से शुरू करना चाहिए?'।

आज, मैं ओपन-सोर्स (Open Source) के दरवाज़े पर दस्तक देने के लिए साहस करूँगा, और उस प्रक्रिया में मेरे द्वारा सीखे और महसूस किए गए अनुभव को साझा करना चाहता हूँ।

ओपन-सोर्स (Open Source)?

यदि आप विकास का अध्ययन करते हैं, तो आप अक्सर 'ओपन-सोर्स (Open Source)' शब्द सुनते हैं। GitHub को देखते हुए, आप देखेंगे कि दुनिया को बदलने वाले कई प्रोजेक्ट अपने कोड को खुले तौर पर खोल रहे हैं।

इस तरह से कोड को जनता के लिए जारी करने वाले प्रोजेक्ट को 'ओपन-सोर्स (Open Source)' कहा जाता है।
उदाहरण के लिए, OpenJDK, Spring Framework, Redis, React जैसे बड़े ओपन-सोर्स (Open Source) हैं।

ओपन-सोर्स (Open Source) योगदान

मैंने अब तक कुल 4 बार ओपन-सोर्स (Open Source) में योगदान दिया है। यह ओपन-सोर्स (Open Source) में छोटी-छोटी, छोटी-छोटी सुधार की तलाश करके योगदान कर रहा है, न कि दुनिया को बदलने वाले कार्यों को जोड़ना।

मैं उपरोक्त प्रोजेक्ट की कोड शैली नहीं जानता, और मुझे यह भी नहीं पता कि यह कैसे काम करता है।

आप देख सकते हैं कि आप कोड को पूरी तरह से समझे बिना समुदाय में योगदान कर सकते हैं। मैंने अभी केवल 2 साल के लिए विकास किया है, और मुझे नहीं लगता कि मेरे पास विकास के लिए कोई खास प्रतिभा है।

मैं बस ओपन-सोर्स (Open Source) में योगदान देना और डेवलपर समुदाय के साथ संवाद करना पसंद करता हूँ, इसलिए मैं इन गतिविधियों को जारी रखता हूँ।

मैंने ओपन-सोर्स (Open Source) में योगदान क्यों देना चाहा?

ईमानदारी से कहूँ तो, शुरू में, 'क्या यह फिर से शुरू करने के लिए एक पंक्ति जोड़ना अच्छा नहीं होगा?' ऐसा विचार पूरी तरह से खत्म नहीं हुआ था। यह काफी बड़ा था। लेकिन एक और बड़ा कारण था। यह था 'मैं और गहराई से सीखना चाहता हूँ' और 'मैं अपनी समस्याओं को हल करना चाहता हूँ' की आवश्यकता।

टीम प्रोजेक्ट में स्प्रिंग वेबफ्लक्स (Spring WebFlux) का उपयोग करते समय, मुझे इसके अंतर्निहित तकनीकी, प्रोजेक्ट रिएक्टर (Project Reactor) का गहराई से अध्ययन करने का अवसर मिला। मैंने किताबों और दस्तावेजों के माध्यम से अवधारणाओं को समझा, लेकिन वास्तव में जटिल प्रणालियों में यह कैसे काम करता है और अनुकूलित होता हैयह सीधे कोड को देखकर और सामना करके पता लगाया जा सकता था। इसके अलावा, मैंने अक्सर इस बारे में चिंता की कि 'मैं कैसे साबित करूँ कि मैंने रिएक्टर का अध्ययन किया है?' और 'मुझे ओपन-सोर्स (Open Source) में योगदान करना चाहिए!' ऐसा महसूस हुआ।

एक बार 'मैं योगदान करना चाहता हूँ!' तय करने के बाद, यह अस्पष्ट था कि कहाँ से शुरू करें। विशाल कोड में वह हिस्सा ढूंढना जिसे मुझे बदलना था, से लेकर इस बात का अनुमान लगाना कि मेरा बदलाव पूरे सिस्टम को कैसे प्रभावित करेगा, सब कुछ डरावना था।

मैंने बहुत समय लगाया, इस विचार से कि 'अगर मैंने पीआर (PR) अपलोड किया तो क्या होगा?'।

मुझे एहसास हुआ कि मेरा रिएक्टिव स्टैक (Reactive Stack), रेडिस (Redis) जावा क्लाइंट, लेट्यूस (Lettuce) का रिएक्टिव कमांड, रिएक्टर (Reactor) पर आधारित था, और मैं रिएक्टर सीखने के आधार पर रिएक्टर चेन को सीधे संशोधित करके सुधार करना चाहता था।

बस एक फोर्क (fork) करने के बाद, मैंने 'रिएक्टिव (Reactive)', 'रिएक्टर (reactor)' स्ट्रिंग मैचिंग के साथ सभी कोड की जाँच की। मैंने रिएक्टर पब्लिशर (Reactor Publisher) जैसे मोनो (Mono) और फ्लक्स (Flux) के साथ निर्मित सभी चेन को देखा।

कोड की सावधानीपूर्वक जाँच करने के बाद, सौभाग्य से, मुझे एक कोड मिला जो रिएक्टर चेन का उपयोग करता है, जिसकी पठनीयता थोड़ी कम थी और विधि चेनिंग सही ढंग से नहीं की गई थी। यद्यपि यह दुनिया को बदलने वाला सुधार या वास्तुकला परिवर्तन नहीं था, यह एक छोटी और स्पष्ट समस्या थी जिसे मैं समझ और संशोधित कर सकता था। 'ओह, अगर ऐसा है तो मैं भी योगदान कर सकता हूँ!' ऐसा लगा।

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

संशोधित सामग्री को कमिट करने के बाद, अंत में, पीआर (PR) अपलोड करने का समय आ गया। सच कहूँ तो, 'भेजें' बटन दबाने से पहले, मैंने बहुत सोचा और हिचकिचाया। 'क्या इस बदलाव के साथ PR भेजना ठीक है?', 'क्या वे कहेंगे कि मैंने कुछ बहुत ही सामान्य चीज़ें ठीक की हैं?', 'क्या मैं अंग्रेजी में अच्छी तरह से समझा सकता हूँ?' ऐसा चिंतित था।

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

ओपनसोर्स योगदान अनुभव

redis/lettuce - #3061

अंत में, मेरा PR 'मर्ज' हो गया, और मुझे इस तथ्य से वास्तव में एक बड़ी उपलब्धि और गर्व महसूस हुआ कि मैंने जो कोड लिखा और संशोधित किया, वह कई डेवलपर्स द्वारा उपयोग किए जाने वाले एक प्रसिद्ध ओपन-सोर्स (Open Source) प्रोजेक्ट का हिस्सा बन गया।

सबसे बढ़कर, 'मैं भी कर सकता हूँ!' यह आत्मविश्वास हासिल करना सबसे बड़ा फायदा था।

क्या आप अभी ओपन-सोर्स (Open Source) में योगदान करने में हिचकिचा रहे हैं?

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

यदि आप गलतियाँ करते हैं, तो वे गलतियाँ आपको समुदाय से प्रतिक्रिया प्राप्त करने और अधिक बढ़ने का अवसर भी प्रदान कर सकती हैं।

यह अपने रिज्यूमे में एक पंक्ति जोड़ने का एक कीमती अवसर भी है, लेकिन सीखने पर आधारित ओपन-सोर्स (Open Source) में योगदान यह साबित करने का एक साधन भी हो सकता है कि आपने वास्तव में कड़ी मेहनत की है।

यह एक ऐसा पोस्ट है जिसपर टिप्पणियां अक्षम हैं।

29 नवंबर 2024 की लेट ब्रेकिंग न्यूज़: Replit का पेड सब्सक्रिप्शन / अच्छी सॉफ्टवेयर डेवलपमेंट आदतें29 नवंबर 2024 को लिखे गए इस ब्लॉग पोस्ट में Replit के पेड सब्सक्रिप्शन के अनुभव को साझा किया गया है और अच्छी सॉफ्टवेयर डेवलपमेंट आदतों के 10 सुझाव दिए गए हैं। इसमें कुशल कोडिंग और रिफैक्टरिंग रणनीतियाँ, टेस्टिंग के महत्व आदि पर चर्चा की गई है।
Charles Lee
Charles Lee
Charles Lee
Charles Lee

November 29, 2024

LegiNote प्रोजेक्ट विकास की कहानी 2 - तकनीकी ढाँचा और वर्करLegiNote प्रोजेक्ट विकास की कहानी के दूसरे भाग में, Go भाषा का उपयोग करके विकसित वर्कर के बारे में बताया गया है। डेटा संग्रह और अपडेट तर्क कार्यान्वयन और प्रोजेक्ट संरचना पद्धति का परिचय दिया गया है।
statpan
statpan
statpan
statpan

August 20, 2024

लेगिनोट प्रोजेक्ट विकास की कहानी3 - गो में अनुरोधगो भाषा का उपयोग करके संसद ओपनएपीआई से कानूनी जानकारी प्राप्त करने वाली लेगिनोट परियोजना के विकास की प्रक्रिया को प्रस्तुत करता है। इसमें HTTP अनुरोध और डेटा संरचना परिभाषा आदि शामिल हैं।
statpan
statpan
statpan
statpan

August 26, 2024

[गैर-तकनीकी, डेवलपर बनकर कैसे बचे] 16. नए डेवलपर के लिए पोर्टफोलियो बनाने के टिप्सनए डेवलपर के पोर्टफोलियो को लिखने के टिप्स दिए गए हैं। प्रोजेक्ट के अनुभव और डेवलपमेंट फीचर को विस्तार से लिखना और यह स्पष्ट करना महत्वपूर्ण है कि किस तरह की सेवा विकसित की गई है।
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

April 3, 2024

Node.js जूनियर भी बना सकते हैं framework level DIयह लेख Node.js सर्वर विकास में निर्भरता इंजेक्शन (DI) को लागू करने के तरीके के बारे में बताता है। यह बताता है कि TypeScript कंपाइलर के Reflect मेटाडेटा फ़ंक्शन का उपयोग करके DI को कैसे लागू किया जाए और संबंधित लाइब्रेरी का परिचय देता है।
Sunrabbit
Sunrabbit
Sunrabbit
Sunrabbit

November 8, 2024

कोरियाई निवेश सिक्योरिटीज एपीआई विकास में आई परेशानियों का रिकॉर्डयह लेख कोरियाई निवेश सिक्योरिटीज एपीआई का उपयोग करके ऑटोमेटिक ट्रेडिंग प्रोग्राम विकसित करने की प्रक्रिया में आई परेशानियों और उनके समाधानों का रिकॉर्ड है। वेबसॉकेट का उपयोग, ट्रेडिंग मेथोडोलॉजी सेटिंग जैसी कठिनाइयों को ईमानदारी से साझा किया गया है और साथ
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마

April 23, 2024