À l’ère de l’IA, le refactoring n’est plus une corvée
(blog.lemonbase.team)Voici un article sur le nettoyage d’un legacy de Design System avec AI + Codemod.
J’espère qu’il pourra être utile à celles et ceux qui s’apprêtent à mener un refactoring à grande échelle.
Contexte du problème
- Dans le Design System interne, de nombreux composants comme Typography ont été dépréciés
- Après l’introduction du nouveau Design System + Tailwind, des patterns dépréciés coexistaient dans une même codebase
- Les nettoyer petit à petit avec la règle du Boy Scout était difficile, car
- il y avait beaucoup trop de fichiers
- à cause du principe de séparation entre les PR de changement fonctionnel et les PR de refactoring, la priorité était sans cesse repoussée
Approche : Codemod + IA
- Utilisation d’un Codemod basé sur l’AST (
jscodeshift) plutôt qu’un simple remplacement de chaînes - Utilisation de l’IA pour :
- recenser de manière exhaustive les patterns d’usage de Typography dépréciés
- formaliser les règles Before/After
- aider à rédiger un premier jet du script de transformation
jscodeshiftet du code de test
- Exemples clés de transformation :
<Body1 bold>텍스트</Body1>
→<span className="typography-body1-bold">텍스트</span><HeadLine5 as="h1" color={SemanticColor.Text.Primary}>
→<h1 className="typography-headLine5 text-primary">
Résultat
- Environ 95 % des patterns dépréciés liés à Typography ont été convertis automatiquement
- La réduction importante des patterns mixtes a amélioré la cohérence du code et l’expérience d’onboarding
- L’équipe a désormais l’option de se dire : « le prochain remplacement du Design System se fera aussi avec un Codemod »
Ce qu’on en a retenu
- Bien plus de tâches de refactoring qu’on ne l’imagine peuvent être automatisées avec AST + Codemod
- Pour les transformations automatiques à grande échelle, la revue des « règles de transformation + tests » est plus efficace et plus sûre que la revue des diff fichier par fichier
- Il est préférable de distinguer les rôles : l’IA pour l’analyse des patterns et l’aide au brouillon, le Codemod pour les remplacements massifs et cohérents
Aucun commentaire pour le moment.