"कोड काम करता है। इसे मत छुओ।
सॉफ्टवेयर विकास में एक पुरानी कहावत है। मैंने इसे अपने करियर में कई बार सुना है …
अगर यह टूटा नहीं है, तो इसे ठीक न करें।
आप पुराने कोड को अनुकूलित करने में स्वयं को परेशानी में डाल सकते हैं।
लेकिन जब आप कर सकते हैं तो आपको पुराने कोड को भी साफ़ करना चाहिए!
आप कैसे तय करते हैं - इसे छोड़ दें या इसे ठीक करें?
मेरा कोड बस काम करता है
अभी Reddit पर एक अजीब GIF चल रहा है।

यह इस तथ्य को रेखांकित करता है कि हम अक्सर जानते हैं कि हमारा कोड डोमेन में फिट नहीं होता है!
समय के साथ, हम आश्वस्त हो सकते हैं कि कोड का दुरुपयोग किया जाएगा या अजीब तरीकों से बढ़ाया जाएगा।
जब आप कोड लिखते हैं, तब भी यह सबसे अच्छा समाधान नहीं लगता है।
क्या करें?
अपने विकल्पों का वजन
चाहे वह कोड हो जिसे आपने अभी लिखा है या पुराना कोड जिसे रिफैक्टर की आवश्यकता है - आप कैसे तय करते हैं कि इसके बारे में क्या करना है?
- एक ओर, कोड काम करता है! एजाइल सॉफ्टवेयर कहता है कि अच्छा ही काफी है । आपको अपना समय अधिक मूल्य-उत्पादक गतिविधियों पर खर्च करना चाहिए।
- दूसरी तरफ, किसी और के लिए गन्दा, भ्रमित, या खराब डिज़ाइन कोड छोड़ना अच्छा नहीं है! साथ ही, जब मूलभूत कोड अच्छी तरह से डिज़ाइन किया गया हो, तो भविष्य में परिवर्तन और विस्तार आसान हो जाते हैं।
सॉफ्टवेयर डेवलपमेंट सभी ट्रेडऑफ़ के बारे में है। आप लगातार निर्णय कॉल कर रहे होंगे। रिफैक्टर करना है या नहीं यह उन कॉलों में से एक है।
जितना आसान लगता है उतना है नहीं
आप अक्सर पाएंगे कि मूलभूत कोड किसी कारण से जटिल है।
सबसे पहले, ऐसा प्रतीत होता है कि एक बेहतर तरीका है। लेकिन जैसे ही आप रिफ्लेक्टर में गोता लगाते हैं, आप पाते हैं कि ऐसे किनारे मामले हैं जिन पर आपने विचार नहीं किया। इस कोर कोड का उपयोग आपके अनुमान से अधिक तरीकों से किया जाता है।
आम तौर पर, कोड के मूलभूत टुकड़े पर सरल सफाई सुलझती है। सभी टुकड़ों का अनुसरण करने में कई दिन या सप्ताह लग जाते हैं।
मूलभूत कोड को ठीक करने की तलाश करते समय, यह महत्वपूर्ण है कि आप दायरे को समझें। यह बदलाव कितना बड़ा होगा? यह सिस्टम के कितने हिस्सों को प्रभावित करेगा? मैं रिफैक्टर को कितना समय लेने की उम्मीद कर सकता हूं?
मैं कहूंगा कि हमेशा मान लें कि जितना आप सोचते हैं उससे दोगुना समय लगेगा।
फिर, आपको पूछना होगा, "क्या यह इसके लायक है?"
विचार करने योग्य प्रश्न
एक बड़ा रिफैक्टर शुरू करने से पहले कुछ बातों पर विचार करना चाहिए :
- क्या यह कोड एप्लिकेशन के लिए आधारभूत है और इसलिए पूरे सिस्टम को अधिक बनाए रखने योग्य बनाता है?
- क्या एक रिफ्लेक्टर नियमित रूप से भविष्य के देवों की मदद करेगा या क्या यह कोड शायद ही कभी छुआ हो?
- यदि रिफैक्टर अपेक्षा से दोगुना समय लेता है, तो क्या यह अभी भी इसके लायक होगा?
- क्या कोई छोटा सा प्रयास है जो मैं पूर्ण रिफैक्टर के लाभों का एक हिस्सा प्राप्त करने के लिए पहले कर सकता हूं, यह परीक्षण करने के तरीके के रूप में कि परिवर्तन कितने कठिन होंगे?
- अगर मैं इस रिफ्लेक्टर पर समय बिताता हूं, तो अन्य सुविधाओं, सुधारों और बग फिक्स के लिए एक अवसर लागत है जिस पर मैं काम कर सकता हूं। क्या यह रिफ्लेक्टर वारंट के लिए काफी महत्वपूर्ण है?
लेकिन मैं उन टीमों में भी रहा हूँ जहाँ एक दुष्ट रिफैक्टर प्रयास ने हमारे डेवलपर्स के लिए समय, ऊर्जा और ध्यान खींचा है। सभी ज्यादा लाभ के लिए नहीं।
तो, दो बार सोचें और स्पष्ट दिमाग के साथ अपने रिफैक्टर प्रयासों में लग जाएं। आपकी टीम आपको धन्यवाद देगी।
दैनिक सूची
मैं सॉफ्टवेयर डेवलपर्स को उद्देश्य के साथ सार्थक करियर बनाने में मदद करता हूं।
दूसरों के विपरीत - जो बड़े वेतन का पीछा करने की सलाह देते हैं, कुलीन कंपनियों (FAANG) में नौकरी करते हैं, या साक्षात्कार की तैयारी करते हैं - मैं डेवलपर्स को संतुलित सॉफ्टवेयर करियर को पूरा करने की दिशा में सलाह देता हूं।
मेरा लक्ष्य आपको सॉफ्टवेयर पर काम करने में मदद करना है जो दुनिया को एक बेहतर जगह बनाता है।
2,000 अन्य सॉफ्टवेयर डेवलपर्स मेरी दैनिक पोस्ट सीधे उनके इनबॉक्स में प्राप्त करते हैं।
दैनिक सूची में शामिल हों और मेरी सर्वोत्तम सामग्री तक तुरंत पहुंच प्राप्त करें!
—
$5 में मीडियम से जुड़ें — सभी मीडियम तक पहुंचें + मुझे और दूसरों को सपोर्ट करें!