थर्ड पार्टी कोड डिपेंडेंसी का खतरा

यदि आप इस पृष्ठ के लिंक से किसी सेवा की सदस्यता लेते हैं, तो रीव्स एंड संस लिमिटेड एक कमीशन कमा सकता है। हमारा देखें नैतिक वक्तव्य.

यह पृष्ठ मूल रूप से अंग्रेजी में लिखा गया था। अभी आप एक मशीनी अनुवादित संस्करण हिंदी में देख रहे हैं।

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

हर बार जब आप एक वेबपेज के नीचे एक छोटा लिंक देखते हैं, जो कहता है कि "पावर्ड बाय सो-एंड-सो", तो आप कार्रवाई में इस सहयोगी प्रभाव को देख रहे हैं।

और निश्चित रूप से लोगों को इस तीसरे पक्ष के साझाकरण और सहयोग को पसंद करने का मुख्य कारण यह है कि यह विकास के समय में आपके कई घंटे बचा सकता है, क्योंकि आप किसी ऐसी चीज़ का दोबारा आविष्कार नहीं कर रहे हैं जो पहले से मौजूद है।

लेकिन तृतीय पक्ष कोड साझाकरण प्रणाली के इन महान लाभों के बावजूद, ऐसे कई कारण हैं जिनकी वजह से आप उन कोड अंशों का उपयोग करने से बचना चाहेंगे, जैसा कि हम देखने वाले हैं...

1. संभावित सुरक्षा जोखिम

क्योंकि लगभग सभी कोड जो वेब पर कुछ भी चलाते हैं, खुला स्रोत है, यह एक उचित शर्त है कि यदि किसी दिए गए एप्लिकेशन में कोई दुर्भावनापूर्ण पेलोड है, तो यह डेवलपर समुदाय द्वारा जल्दी से खोजा जाएगा और तेजी से सही किया जाएगा।

लेकिन इनमें से कई कोड टुकड़े प्रति दिन सैकड़ों या हजारों बार डाउनलोड किए जाते हैं, और प्रत्येक प्रशासनिक टीम एक सुरक्षित कोड साझाकरण प्रणाली को बनाए रखने का अच्छा काम नहीं कर रही है।

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

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

2। आप इसके मालिक नहीं हैं

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

बेशक, शायद ही कोई नियम और शर्तों की इन कठिन सूचियों को पढ़ने की जहमत उठाता है, लेकिन यह संभावित रूप से एक गलती हो सकती है।

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

दूसरा मुद्दा यह है कि यदि आपके पास कोड नहीं है, तो आपका इस पर कोई नियंत्रण नहीं है, और जरूरी नहीं कि आप यह समझें कि यह क्या करता है या यह कैसे काम करता है।

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

3। आप अक्सर ज़रूरत से ज़्यादा ही मिलते हैं

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

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

4। तीसरे पक्ष की निर्भरता के कई स्तर वास्तविक परेशानी का कारण बन सकते हैं

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

इन दिनों, कई डेवलपर अपने द्वारा उपयोग किए जा रहे टुकड़ों को इंस्टॉल भी नहीं करते हैं, लेकिन मांग पर सामग्री वितरण नेटवर्क से रन टाइम पर उन्हें खींच लेते हैं। इसके खतरे को 2016 की लेफ्ट-पैड घटना द्वारा शानदार ढंग से चित्रित किया गया था।

प्रत्येक शृंखला उतनी ही मजबूत होती है जितनी उसकी सबसे कमजोर कड़ी। निर्भरता की इस श्रृंखला का मतलब है कि यदि श्रृंखला में कहीं भी कोई भी लिंक टूट जाता है या समझौता हो जाता है, तो पूरी श्रृंखला में खराबी का खतरा होता है। कुछ स्थितियों में यह काफी महंगा हो सकता है।

किसी को भी लेफ्ट-पैड नामक उस सौम्य छोटे फ़ंक्शन में निहित कोड की 11 पंक्तियों में निहित शक्ति पर संदेह नहीं होगा, लेकिन जब वह विशेष श्रृंखला लिंक विफल हो गया, तो इसने कई बड़ी वेबसाइटों को रोक दिया।

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

लेफ्ट-पैड एक बहुत ही सरल फ़ंक्शन था जो यह सुनिश्चित करने के लिए कि लाइन की लंबाई सही है, लाइन के बाईं ओर कुछ रिक्त स्थान जोड़ता है। अब यहां मुद्दा यह है कि कोई भी सक्षम प्रोग्रामर उस कार्यक्षमता को आसानी से दोहरा सकता है।

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

लब्बोलुआब यह है कि यदि आप इसे स्वयं बना सकते हैं, तो आपको शायद करना चाहिए!

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

निर्णय प्रक्रिया को सरल बनाने के लिए, निम्नलिखित परीक्षण स्थिति संभवतः मदद करेगी।

यदि इनमें से कोई भी कारक सत्य हैं:

  • आप चाहते हैं समारोह सरल है
  • आप (या आपकी टीम) फ़ंक्शन बनाने की क्षमता रखते हैं
  • फ़ंक्शन बनाने के लिए बहुत समय है
  • आपके आवेदन को अच्छी सुरक्षा चाहिए
  • आपको तीसरे पक्ष के लाइसेंसिंग से जुड़ी संभावित कानूनी समस्याओं के बारे में चिंता है
  • यह महत्वपूर्ण है कि आपका आवेदन कभी भी विफल न हो

क्या आपको इसे स्वयं बनाना चाहिए,

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

बोगदान रैंकी

बोगदान इंसपायर्ड मैग का एक संस्थापक सदस्य है, जिसके पास इस अवधि में लगभग 6 वर्षों का अनुभव है। अपने खाली समय में वह शास्त्रीय संगीत का अध्ययन करना और दृश्य कला का पता लगाना पसंद करते हैं। वह भी Fixies के साथ काफी जुनूनी है। वह पहले से ही 5 का मालिक है।

टिप्पणियाँ 0 जवाब

एक जवाब लिखें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड इस तरह चिह्नित हैं *

रेटिंग *

यह साइट स्पैम को कम करने के लिए अकिस्मेट का उपयोग करती है। जानें कि आपका डेटा कैसे संसाधित किया जाता है.