मेरा विचार देने के लिए:
छोटे, वृद्धिशील परिवर्तन जो कोड को एक बेहतर स्थिति में छोड़ते हैं, यह पाया गया था
निश्चित रूप से हाँ: "कॉस्मेटिक" परिवर्तन जो सीधे तौर पर सुविधाओं से संबंधित नहीं हैं (अर्थात यह परिवर्तन अनुरोध के रूप में बिल योग्य नहीं है)।
निश्चित रूप से नहीं: बड़े हिस्से को फिर से लिखना स्पष्ट रूप से "छोटे, वृद्धिशील" भाग का उल्लंघन करता है। रिफैक्टिंग का उपयोग अक्सर एक पुनर्लेखन के विपरीत के रूप में किया जाता है : इसे फिर से करने के बजाय, मौजूदा में सुधार करें।
निश्चित रूप से हो सकता है: डेटा संरचनाओं और एल्गोरिदम को बदलना कुछ हद तक सीमा का मामला है। यहां निर्णय लेने का अंतर IMO के छोटे चरण हैं: वितरित करने के लिए तैयार रहें, किसी अन्य मामले पर काम करने के लिए तैयार रहें।
उदाहरण: कल्पना कीजिए कि आपके पास एक रिपोर्ट रैंडमाइज़र मॉड्यूल है जो एक वेक्टर के उपयोग से धीमा है। आपने कहा है कि वेक्टर सम्मिलन अड़चन है, लेकिन दुर्भाग्य से मॉड्यूल कई स्थानों पर सन्निहित स्मृति पर निर्भर करता है ताकि सूची का उपयोग करते समय चीजें चुपचाप टूट जाएं।
पुनर्लेखन का मतलब होगा मॉड्यूल को दूर फेंकना एक बेहतर और तेजी से खरोंच से एक इमारत, बस पुराने से कुछ टुकड़े चुनना। या एक नया कोर लिखना, फिर इसे मौजूदा संवाद में फिट करना।
सूचक को अंकगणित को हटाने के लिए छोटे कदम उठाने का मतलब होगा, ताकि स्विच। हो सकता है कि आप पॉइंटर अंकगणित को लपेटते हुए एक यूटिलिटी फंक्शन भी बनाते हैं, उस फ़ंक्शन को कॉल के साथ डायरेक्ट पॉइंटर हेरफेर की जगह लेते हैं, फिर एक इटरेटर पर स्विच करते हैं ताकि कंपाइलर उन जगहों के बारे में शिकायत करे जहां पॉइंटर अंकगणित अभी भी उपयोग किया जाता है, फिर एक में स्विच करें list
, और फिर निकालें पूर्णता समारोह।
इसके पीछे विचार यह है कि कोड अपने आप खराब हो जाता है। जब कीड़े को ठीक करना और सुविधाओं को जोड़ना, छोटे चरणों में गुणवत्ता में गिरावट आती है - एक चर का अर्थ सूक्ष्म रूप से बदलता है, एक फ़ंक्शन को एक अतिरिक्त पैरामीटर मिलता है जो अलगाव को तोड़ता है, एक लूप थोड़ा जटिल हो जाता है आदि। इनमें से कोई भी वास्तविक बग नहीं है, आप कर सकते हैं। 'एक लाइन काउंट बताएं जो लूप को जटिल बनाता है, लेकिन आप पठनीयता और रखरखाव को नुकसान पहुंचाते हैं।
इसी तरह, एक चर नाम को बदलना या किसी फ़ंक्शन को निकालना, अपने स्वयं के मूर्त सुधार नहीं हैं। लेकिन कुल मिलाकर, वे धीमी क्षरण से लड़ते हैं।
कंकड़ की दीवार की तरह जहां हर रोज जमीन पर गिरता है। और रोज एक राहगीर उसे उठाकर वापस रख देता है।