तकनीकी कर्ज़: मेरी Rust लाइब्रेरी अब CDO बन गई है
- तकनीकी कर्ज़ पर एक मज़ाक यह है कि अगर तकनीकी कर्ज़ है, तो उस कर्ज़ को संभालने के लिए डेरिवेटिव्स भी होने चाहिए।
- Rust ecosystem ने ऐसा समाधान पैदा किया है जो तकनीकी कर्ज़ को प्रतिभूतिकृत करने जैसा दिखता है।
- उदाहरण के लिए, कोई लाइब्रेरी
stuff दूसरी लाइब्रेरी learned-rust-this-way पर निर्भर है, लेकिन learned-rust-this-way के लेखक की रुचि खत्म हो जाती है और समस्याएँ जमा होने लगती हैं।
तकनीकी कर्ज़ की असलियत
learned-rust-this-way को तकनीकी कर्ज़ माना जाता है, यानी यह सीधे समस्याएँ पैदा नहीं करता, फिर भी यह कर्ज़ है।
- किसी बिंदु पर किसी को पता चलता है कि
learned-rust-this-way कर्ज़ है, और मूल लेखक से संपर्क न हो पाने पर इसे RUSTSEC database में जोड़ दिया जाता है।
- RUSTSEC, एक rating agency की तरह, उस कर्ज़ को कबाड़ घोषित कर देता है, और इसके कारण बहुत से लोगों का CI (continuous integration) फेल होने लगता है।
कर्ज़ से निपटने के तरीके
stuff के maintainer के रूप में, जब उपयोगकर्ता learned-rust-this-way के इस्तेमाल पर समस्या उठाते हैं तो तनाव बढ़ता है और कर्ज़ से निपटने के लिए कदम उठाने का दबाव आता है।
- किसी विकल्प पर जाना एक रास्ता है, लेकिन इस मामले में सभी विकल्प आकर्षक नहीं हैं।
learned-rust-this-way को fork करने पर भी वही मांगें सामने आती हैं, इसलिए यह सिर्फ़ अस्थायी समाधान है, समस्या का वास्तविक हल नहीं।
जो समाधान वास्तव में काम करता है
- अगर आप उस कोड को अपनी लाइब्रेरी में merge कर देते हैं, तो वही कबाड़ तकनीकी कर्ज़ अचानक ‘AAA’ रेटिंग पा लेता है।
- कोड को आगे छेड़े बिना, merge की बात छिपाकर, और पहले की तरह लाइब्रेरी maintain करते हुए दुनिया चलती रहती है।
yaml-rust को insta में vendor करके merge करने से, यह insta कोड और yaml-rust का संयुक्त रूप बन गया, और इस तरह तकनीकी कर्ज़ को AAA रेटिंग में अपग्रेड कर दिया गया।
GN⁺ की राय
- यह लेख तकनीकी कर्ज़ की तुलना वित्तीय डेरिवेटिव्स से करके, software development में आने वाली समस्याओं को चतुराई से समझाता है।
- तकनीकी कर्ज़ software development में अक्सर सामने आने वाली समस्या है, और यह लेख डेवलपर्स को इसे प्रबंधित करने के रचनात्मक तरीके सुझाता है।
- Rust ecosystem में RUSTSEC जैसी rating systems डेवलपर्स को लाइब्रेरी की स्थिरता का आकलन करने में मदद कर सकती हैं, लेकिन साथ ही अनावश्यक तनाव भी पैदा कर सकती हैं।
- कोड को merge करके तकनीकी कर्ज़ हल करना एक अस्थायी उपाय हो सकता है; लंबे समय में अधिक टिकाऊ maintenance strategy की ज़रूरत होती है।
- ऐसी स्थिति में community-led maintenance, open source projects की shared maintenance, या लाइब्रेरी के alternative versions खोजने जैसे अलग-अलग समाधानों पर विचार किया जाना चाहिए।
1 टिप्पणियां
Hacker News की राय