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

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

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

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

1.Potential सुरक्षा जोखिम

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

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

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

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

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

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

बेशक, नियम और शर्तों की इन थकाऊ सूचियों को पढ़ने के लिए शायद ही कोई परेशान करता है, लेकिन यह संभवतः एक गलती हो सकती है। विशेष रूप से यह एक गलती होगी यदि लाइसेंस समझौते में कुछ शर्त आपके गृह देश या उस देश में जहां आपका सर्वर स्थित है, में कुछ कानून का उल्लंघन हो सकता है।

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

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

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

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

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

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

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

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

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

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

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

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

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

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

हेडर इमेज सौजन्य से स्टेफ़नी टकर

बोगदान रैंकी

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