कोड गुणवत्ता और रीफैक्टरिंग
कोड गुणवत्ता और रीफैक्टरिंग का संबंध ऐसे स्रोत कोड लिखने से है जो पठनीय, रखरखाव योग्य और सुव्यवस्थित हो, तथा मौजूदा कोड की आंतरिक संरचना में उसके बाहरी व्यवहार को बदले बिना सुधार करने के लिए अनुशासित तकनीकों से है।
Definition
रीफैक्टरिंग एक सॉफ्टवेयर सिस्टम को इस तरह से बदलने की प्रक्रिया है जो उसके अवलोकन योग्य व्यवहार को नहीं बदलती है, फिर भी उसकी आंतरिक संरचना में सुधार करती है, और कोड गुणवत्ता वह डिग्री है जिस तक स्रोत कोड पठनीयता, रखरखाव क्षमता और सुदृढ़ आंतरिक डिजाइन प्रदर्शित करता है।
Scope
यह विषय कोड की पठनीयता और नामकरण, कोड स्तर पर सामंजस्य और युग्मन, डिजाइन समस्याओं का संकेत देने वाली कोड स्मेल, व्यवहार-संरक्षण रीफैक्टरिंग की सूची, सुरक्षित रीफैक्टरिंग में स्वचालित परीक्षणों की भूमिका, और मानकों का आकलन और उन्हें लागू करने के लिए उपयोग किए जाने वाले कोड-गुणवत्ता मेट्रिक्स और स्टैटिक-एनालिसिस टूलिंग को शामिल करता है।
Core questions
- कौन सी विशेषताएँ स्रोत कोड को पठनीय और रखरखाव योग्य बनाती हैं?
- कोड स्मेल कैसे संकेत देती हैं कि रीफैक्टरिंग की कहाँ आवश्यकता है?
- व्यवहार को बदले बिना या दोषों को पेश किए बिना संरचना में कैसे सुधार किया जा सकता है?
- समय के साथ कोड गुणवत्ता और उसके क्षय को कैसे मापा जाता है?
Key theories
- व्यवहार-संरक्षण रीफैक्टरिंग
- रीफैक्टरिंग छोटे, व्यवहार-संरक्षण परिवर्तनों को अनुक्रम में लागू करता है, प्रत्येक को परीक्षणों द्वारा सत्यापित किया जाता है, ताकि जोखिम भरे बड़े पुनर्लेखन के बजाय वृद्धिशील और सुरक्षित रूप से संरचना में सुधार किया जा सके।
- डिजाइन अनुमानी के रूप में कोड स्मेल
- बार-बार होने वाले सतही लक्षण — लंबी विधियाँ, डुप्लिकेट कोड, बड़ी कक्षाएँ, फीचर ईर्ष्या — गहरे डिजाइन समस्याओं का संकेत देने वाले अनुमानी के रूप में कार्य करते हैं और उन्हें ठीक करने के लिए विशिष्ट रीफैक्टरिंग का सुझाव देते हैं।
Clinical relevance
उच्च कोड गुणवत्ता सॉफ्टवेयर को समझने और बदलने की लागत को कम करती है, जो इसकी कुल लागत पर हावी होती है; निरंतर रीफैक्टरिंग एक कोडबेस को अनुकूलनीय बनाए रखती है और फुर्तीले विकास को बनाए रखने तथा तकनीकी ऋण को नियंत्रित करने के लिए आवश्यक है।
Evidence & guidelines
ISO/IEC 25010 रखरखाव क्षमता और अन्य गुणवत्ता विशेषताओं को फ्रेम करता है, और स्टैटिक-एनालिसिस टूल कोडिंग मानकों को लागू करते हैं और परियोजना नियमों के विरुद्ध स्मेल का पता लगाते हैं।
History
रीफैक्टरिंग प्रथाओं को फाउलर द्वारा 1999 में व्यवस्थित किया गया था और टेस्ट-ड्रिवन डेवलपमेंट और फुर्तीले तरीकों के साथ विकसित हुआ, जो निरंतर, परीक्षण-संरक्षित पुनर्गठन पर निर्भर करते हैं; क्लीन-कोड क्राफ्ट्समैनशिप और स्वचालित स्टैटिक एनालिसिस ने बाद में कोड-गुणवत्ता अनुशासन को मजबूत किया।
Debates
- कितनी रीफैक्टरिंग उचित है
- टीमें इस बात पर बहस करती हैं कि कितनी आक्रामक तरीके से रीफैक्टरिंग की जाए: निरंतर छोटे सुधार कोड को स्वस्थ रखते हैं लेकिन प्रयास का उपभोग करते हैं, जबकि पुनर्गठन को स्थगित करने से तकनीकी ऋण जमा होता है; संतुलन कोड की दीर्घायु और परिवर्तन की दर पर निर्भर करता है।
Key figures
- Martin Fowler
- Kent Beck
- Robert C. Martin
- Steve McConnell
Related topics
Seminal works
- fowler2018
- mcconnell2004
- martin2008
Frequently asked questions
- क्या रीफैक्टरिंग से प्रोग्राम क्या करता है, यह बदल जाता है?
- नहीं। परिभाषा के अनुसार रीफैक्टरिंग अवलोकन योग्य व्यवहार को संरक्षित करता है; यह पठनीयता और डिजाइन में सुधार के लिए आंतरिक संरचना को पुनर्गठित करता है। स्वचालित परीक्षणों का उपयोग यह पुष्टि करने के लिए किया जाता है कि प्रत्येक परिवर्तन के बाद व्यवहार अपरिवर्तित रहता है।
- यदि सॉफ्टवेयर पहले से ही काम कर रहा है तो कोड गुणवत्ता में निवेश क्यों करें?
- किसी सिस्टम की अधिकांश लागत उसे बाद में समझने और बदलने से आती है; खराब गुणवत्ता वाला कोड हर भविष्य के संशोधन को धीमा कर देता है और दोष के जोखिम को बढ़ाता है, इसलिए गुणवत्ता में निवेश सॉफ्टवेयर के रखरखाव वाले जीवनकाल में लाभ देता है।