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