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