यह मेरा एक व्यक्तिगत प्रश्न हो सकता है, लेकिन मुझे जीवित परियोजनाओं में कोड रखना पसंद है - पुस्तकालयों / रूपरेखाओं का उपयोग करना। इसका एक हिस्सा यह है कि मेरा मानना है कि एक वेब ऐप अधिक सुरक्षित है अगर यह पूरी तरह से पैच हो चुका है और अप टू डेट है। इसका एक हिस्सा सिर्फ मेरी ओर से जुनूनी बाध्यकारीता का एक स्पर्श है।
पिछले सात महीनों में, हमने अपने सॉफ़्टवेयर का एक बड़ा पुनर्लेखन किया है। हमने ज़ाराया ढांचे को गिरा दिया, जो एक उत्पाद के रूप में धीमा और अनिवार्य रूप से मृत था, और केक पीएचपी में परिवर्तित हो गया। (हमने केक को चुना क्योंकि इससे हमें अपने सॉफ़्टवेयर का एक बहुत तेजी से पुनर्लेखन करने का मौका मिला, और एक्सराया के प्रदर्शन को बढ़ावा देने के लिए पर्याप्त है कि इसे हमारे समय के लायक बनाया जा सके।)
हमने SimpleTest के साथ इकाई परीक्षण को लागू किया, और सभी फ़ाइल और डेटाबेस के नामकरण सम्मेलनों, आदि का पालन किया।
केक को अब 2.0 से अपडेट किया जा रहा है। और, वहाँ एक उन्नयन के लिए एक व्यवहार्य प्रवास पथ प्रतीत नहीं होता है। फ़ाइलों के लिए नामकरण सम्मेलनों में मौलिक परिवर्तन हुआ है, और उन्होंने SimpleTest को PHPUnit के पक्ष में गिरा दिया।
यह बहुत ज्यादा है कि हमें 1.3 शाखा पर रहने के लिए मजबूर किया जाए क्योंकि जब तक किसी प्रकार का रूपांतरण उपकरण नहीं होता है, केक को अपडेट करना संभव नहीं होगा और फिर नए केक ढांचे के लाभों को प्राप्त करने के लिए धीरे-धीरे हमारे विरासत कोड में सुधार होगा। । इसलिए, हमेशा की तरह, हम अपने तोड़फोड़ भंडार में एक पुराने ढांचे के साथ समाप्त करने जा रहे हैं और इसे आवश्यकतानुसार खुद को पैच करेंगे।
और यही मुझे हर बार मिलता है। इतने सारे ओपन सोर्स प्रोडक्ट्स उन पर आधारित परियोजनाओं को बनाए रखना आसान नहीं बनाते हैं। जब देवता एक नए चमकदार खिलौने के साथ खेलना शुरू करते हैं, तो कुछ महत्वपूर्ण पैच पुरानी शाखाओं में किए जाएंगे, लेकिन उनका अधिकांश ध्यान नए कोड आधार पर होने वाला है।
आपके द्वारा उपयोग किए जाने वाले ओपन सोर्स प्रोजेक्ट्स में आमूल-चूल परिवर्तन से आप कैसे निपटेंगे? और, यदि आप एक ओपन सोर्स उत्पाद विकसित कर रहे हैं, तो क्या आप नए संस्करण विकसित करते समय अपग्रेड पथों को ध्यान में रखते हैं?