पाठ 12 / 25
Refactoring और Migration
यांत्रिक बदलावों के लिए assistants उपयोग करें जबकि tests व्यवहार की रक्षा करें।
ढाँचा बदलें, व्यवहार नहीं
Refactoring कोड का संगठन बदलता है, बिना यह बदले कि वह क्या करता है: नाम बदलना, functions निकालना, callbacks को async/await में बदलना, library API upgrade करना, JavaScript से TypeScript जाना। Assistants इन दोहराव वाले रूपांतरणों में अच्छे हैं। सुरक्षा जाल है पहले और बाद में पास होती test suite; tests के बिना refactor व्यवहार चुपचाप बदल सकता है। इसे छोटे commits में करें ताकि हर step की समीक्षा हो सके।
व्यवहार बना रहा, यह जाँचना
बदलाव के पहले और बाद वही जाँचें चलाएँ। दोनों हरी हों और diff इच्छित जैसा पढ़े, तभी commit करें।
npm test # green BEFORE
# ... let the assistant refactor ...
npm test # must still be green AFTER
git diff --stat # how many files changed?
git diff # read every changed lineRefactor और नई feature अलग रखें
एक ही commit में संरचनात्मक बदलाव और नया व्यवहार मिलाने से bugs ढूँढना कठिन होता है। पहले tests हरे रखकर refactor करें, commit करें, फिर व्यवहार अलग step में बदलें।
त्वरित जाँच: AI-सहायता से हुए refactor में व्यवहार की रक्षा कौन करता है?
- उम्मीद कि कुछ नहीं बदला
- पहले और बाद में पास होती test suite
- लंबी prompt
- पुराने tests हटाना
Answer
पहले और बाद में पास होती test suite — Tests अनजाने व्यवहार-बदलाव पकड़ते हैं जो अकेला diff शायद न दिखाए।