29 points par whatsup 2026-01-22 | Aucun commentaire pour le moment. | Partager sur WhatsApp

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 jscodeshift et 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.

Aucun commentaire pour le moment.