2009-02-07 23 views
5

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

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

  • क्या आप पुरानी पुस्तकालय के रखरखाव बन गए हैं? यहां तक ​​कि यदि आप केवल उन बग को ठीक कर रहे हैं जिनकी आप परवाह करते हैं, यह अभी भी बहुत काम है। विशेष रूप से यदि लाइब्रेरी बड़ी, जटिल है, और इसमें कम से कम दस्तावेज कोड है (मामला अधिक से अधिक नहीं)।

  • क्या आप एक अलग पुस्तकालय में स्विच करते हैं (यदि कोई है तो)? यह भी एक महत्वपूर्ण उपक्रम है, जिसमें नई बग पेश करने की क्षमता है, खासकर यदि एकमात्र विकल्प एक अलग कोण से समस्या का सामना करते हैं। यह सच भी हो सकता है भले ही आपके पास पुराने पुस्तकालय की कार्यक्षमता के लिए एक अमूर्त परत लिखने का दूरदर्शिता था।

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

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

उत्तर

10

ठीक है, आप एक तर्क बाहरी निर्भरता की संख्या को कम करने के ...

मैं कई जावा परियोजनाओं मैं लेखा परीक्षित किया है में इस का सामना करना पड़ा मिल गया है; ऐसा लगता है कि लोगों के पास वेब पर कहीं भी एक जार में गिरावट की प्रवृत्ति है, जो उससे संभव है। नतीजा निर्भरताओं की गड़बड़ी है जो कोड बेस को कमजोर कर देता है। मैं बाहरी घटकों को कम से कम उपयोग करना पसंद करता हूं।

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

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

1

जब जावा ईई फ्रेमवर्क मेरे नियोक्ता ने पेट अप किया, तो हम बाहर गए और एक नया, बेहतर एक पाया। सौभाग्य से वसंत उपलब्ध था।

1

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

2

मुझे लगता है कि आपका वास्तव में उत्तर यह है कि आप अपने कोड में शामिल करने के लिए तृतीय पक्ष पुस्तकालयों का चयन कैसे करते हैं।

आप लगातार भाषा के नवीनतम संस्करण के लिए अपने कोड का उन्नयन तो डिफ़ॉल्ट रूप से आप केवल

वास्तव में मैं कह रही है कि केवल के रूप में जहाँ तक जाना होगा पुस्तकालयों उनके पीछे सक्रिय समुदाय है कि उपयोग कर सकते हैं हैं तो उस समय जब आप किसी तृतीय पक्ष ओपन सोर्स लाइब्रेरी का उपयोग करना चाहते हैं, तब उसके पीछे समुदाय बड़ा होता है (कम से कम 40+ उपयोगकर्ता कहें) और इसमें कुछ रिलीज़ हुए हैं।

एक वाणिज्यिक पुस्तकालय के लिए एक ही बात लागू होती है कि कंपनी कितनी देर तक चल रही है और कितने अन्य ग्राहक इसका उपयोग करते हैं।

यदि आपको इस स्थिति में कोई लाइब्रेरी नहीं मिल रही है तो सुनिश्चित करें कि आप अपने कोड से तीसरे पक्ष की लाइब्रेरी को सारणी दें ताकि भविष्य में प्रतिस्थापन मुश्किल न हो।

1

हम इसी कारण से अपना खुद का रोल करना पसंद करते हैं। हम इस पर पूर्ण नियंत्रण रखते हैं, यह कैसे काम करता है इसका पूर्ण ज्ञान है, और हम इसे किसी भी तरह से बदल सकते हैं। जब हमारे गधे लाइन पर होते हैं जब दोष खेल खेला जाता है, तो हम जोखिम को कम करना पसंद करते हैं और इसे स्वयं करते हैं।

हमारे पास एक ऐसी स्थिति थी जहां हमने बाहरी पुस्तकालय का उपयोग किया था, और इसे लेखक द्वारा फिर से लिखा और पुनर्निर्मित किया गया और अब हमने जो अपेक्षा की थी, वह नहीं किया। हमने उस पर लुढ़काया, अपना खुद का संस्करण लिखा, और सुरक्षित रूप से जारी रखा।

नीचे की रेखा सुरक्षा है, और जोखिम को कम करने।

संबंधित मुद्दे