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