AI के दौर में, refactoring अब सिर्फ मेहनत-मजदूरी नहीं रही
(blog.lemonbase.team)यह AI + Codemod के साथ Design System legacy को व्यवस्थित करने पर एक लेख है।
उम्मीद है कि बड़े पैमाने के refactoring की तैयारी कर रहे लोगों के लिए यह उपयोगी संदर्भ बनेगा।
दृष्टिकोण: Codemod + AI
- कंपनी के आंतरिक Design System में Typography सहित कई components Deprecated हो चुके थे
- नया Design System + Tailwind लागू होने के बाद एक ही codebase में Deprecated patterns मिले-जुले रूप में मौजूद थे
- Boy Scout rule के तहत थोड़ा-थोड़ा करके साफ़ करना मुश्किल था
- files की संख्या बहुत ज़्यादा थी
- feature change PR और refactoring PR को अलग रखने के सिद्धांत के कारण इसकी priority लगातार पीछे खिसकती रही
दृष्टिकोण: Codemod + AI
- string replacement की जगह AST-based Codemod(jscodeshift) का उपयोग
- AI का उपयोग करके:
- Deprecated Typography usage patterns की पूरी जाँच
- Before/After rules को व्यवस्थित करना
- jscodeshift transformation script के draft और test code लिखने में सहायता
- मुख्य transformation उदाहरण:
<Body1 bold>tekst</Body1>
→<span className="typography-body1-bold">tekst</span><HeadLine5 as="h1" color={SemanticColor.Text.Primary}>
→<h1 className="typography-headLine5 text-primary">
परिणाम
- Typography से जुड़े Deprecated patterns का लगभग 95% automatic transformation
- mixed patterns में बड़ी कमी आई, जिससे code consistency और onboarding experience बेहतर हुआ
- “अगला Design System replacement भी Codemod से करेंगे” जैसा एक विकल्प तैयार हो गया
सीखी गई बातें
- सोचा गया था उससे कहीं अधिक refactoring कार्य AST + Codemod से automate किए जा सकते हैं
- बड़े पैमाने के automatic transformation में “file diff review” की तुलना में “transformation rules + test review” अधिक efficient और सुरक्षित है
- AI को pattern analysis और draft writing assistance की भूमिका में, और Codemod को consistent bulk replacement की भूमिका में अलग रखना बेहतर है
अभी कोई टिप्पणी नहीं है.