promptgarten đŸŒ±
🌍 ZH
Guide●●●5 min · +40 XP

Comprendre et moderniser d'anciennes bases de code avec l'IA

Le code legacy sans tests ne se réécrit pas simplement comme ça – les tests de caractĂ©risation et les petites Ă©tapes rendent la modernisation assistĂ©e par IA sĂ»re.

Ce qui rend le code legacy particulier

Le dĂ©veloppeur Michael Feathers a dĂ©fini un jour, de façon lapidaire, le code legacy comme du « code sans tests ». C'est exactement ce qui le rend dangereux Ă  modifier : personne – pas mĂȘme un agent IA – ne peut vĂ©rifier si un changement casse le comportement s'il n'existe aucun test capturant ce comportement.

PremiÚre étape : capturer le comportement, pas l'améliorer

Avant de restructurer quoi que ce soit, tu as besoin de tests de caractĂ©risation. Ce sont des tests qui notent ce que le code fait MAINTENANT – mĂȘme si ça semble bizarre, voire buggĂ©. Ce n'est pas un jugement de qualitĂ©, juste un instantanĂ© qui protĂšge les changements ultĂ©rieurs.

DeuxiÚme étape : migrer progressivement

Une réécriture complĂšte est risquĂ©e : rien ne fonctionne de façon fiable tant que la nouvelle version n'est pas terminĂ©e, et un comportement ancien subtil se perd souvent en route. La migration progressive est une approche plus Ă©prouvĂ©e – un motif connu sous le nom de « figuier Ă©trangleur » (strangler fig) : de nouvelles parties poussent petit Ă  petit autour de l'ancien code, jusqu'Ă  ce que l'ancien puisse finalement ĂȘtre dĂ©sactivĂ©.

OĂč les agents IA sont particuliĂšrement utiles ici

Un agent peut rĂ©sumer rapidement de gros modules non documentĂ©s et proposer des tests de caractĂ©risation possibles – un travail qui coĂ»te normalement trĂšs cher en l'absence de documentation. Ce qui reste important : comprendre et sĂ©curiser d'abord, changer seulement ensuite.

EXEMPLE

Prompt : « Ce module de 1 800 lignes n'a ni tests ni doc. RĂ©sume d'abord ce qu'il fait fonctionnellement. Écris ensuite des tests de caractĂ©risation pour les cinq fonctions les plus importantes, qui capturent le comportement ACTUEL – mĂȘme s'il semble bizarre. Ne change encore aucun code. »

đŸ› ïž EXERCICE — À TOI DE JOUER

Prends un module non testé et confus d'un de tes projets (ou d'un projet open source) et sécurise-le avec des tests de caractérisation avant de changer quoi que ce soit.

  1. Fais d'abord résumer par l'agent ce que le module fait fonctionnellement, sans changer de code.
  2. Identifie avec lui 3 à 5 entrées/appels typiques et fais écrire par l'agent des tests qui capturent les sorties actuelles comme valeur attendue.
  3. Seulement aprÚs : effectue un premier petit changement isolé et vérifie si les tests de caractérisation sont toujours verts.

✅ AUTO-VÉRIFICATION

  • ☐ Les tests couvrent-ils les chemins les plus importants, pas seulement le cas le plus simple ?
  • ☐ As-tu dĂ©libĂ©rĂ©ment capturĂ© le comportement ACTUEL, au lieu de dĂ©jĂ  le « amĂ©liorer » en testant ?
  • ☐ AprĂšs le premier changement, est-ce que tout est encore vert – ou un test rouge montre-t-il exactement ce qui a changĂ© ?

QUIZ RAPIDE

Qu'est-ce qu'un test de caractérisation ?

SOURCES

SUJETS LIÉS

Testing avec des agents : faire Ă©crire des tests et les utiliser comme gate ●●○Maintenir la documentation avec l'IA ●○○Debugging avec des agents IA : de façon systĂ©matique, pas au hasard ●●○Agent bloquĂ© ? Comment t'en sortir ●●○