Refacto legacy : commence par jouer Rambo
Sors le bandana avant l'IDE
Tu tombes sur un code legacy chargé comme un camion soviétique. La tentation, c'est de tout comprendre avant de toucher. Mauvaise idée. Commence par activer ton mode Rambo :
- Vire tout ce qui traîne : features mortes, flags jamais lus, libs oubliées. Si personne ne s'en sert, c'est du ballast.
- Supprime les helpers ésotériques : un util qui ne sert qu'à un test manuel en 2018 ? Hop, dehors.
- Désactive les routes zombies : un endpoint sans métriques ni logs, c'est suspect. Coupe-le et regarde qui crie.
Au pire tu as Git pour récupérer la bricole que tu as jetée. L'archéologie, c'est pour après.
Purge d'abord, compréhension ensuite
Plus ton périmètre est petit, plus ton cerveau respire. En réduisant le scope, tu repères immédiatement ce qui reste vraiment utilisé :
- Trace les appels : un
rgou undepcruisete diront vite si une dépendance sert encore. Zéro hit ? Désinstalle. - Checke les events et les jobs : une queue consommée par personne ou un cron silencieux sont des alarmes. Comment refactorer un fantôme ?
- Observe le run-time : lance l'app sans les modules supprimés. Tu verras les erreurs réelles, pas celles imaginées.
Les librairies obsolètes : on garde ou on recode ?
Une dépendance antédiluvienne pour une seule fonction ? Tu n'as pas signé pour porter moment.js à 2025 juste pour formatter un Date. Pose-toi :
- Combien de fois c'est appelé ? Trois usages ? Recode la fonction en dix lignes et gagne une dépendance en moins.
- Quel coût de mise à jour ? Si la lib impose six migrations majeures, c'est probablement plus rapide de la remplacer.
- Y a-t-il une alternative native ? Souvent oui. Les API standard couvrent 80% des besoins, le reste se recode proprement.
Plus tu coupes, plus le reste devient lisible. Et si vraiment tu as supprimé une pièce maîtresse, Git la ramènera en moins de trente secondes.
Rambo, puis architecte
Cette phase "bourrine" n'est pas la refacto finale. C'est la préparation du terrain :
- Tu clarifies le périmètre : moins de gras, plus d'essentiel.
- Tu réduis les risques : moins de dépendances, moins de vecteurs de bugs.
- Tu accélères la suite : la vraie refonte (tests, design, découplage) devient faisable.
Alors oui, tu peux mettre le bandeau rouge et nettoyer en tir rapide. Ensuite seulement, tu ranges les cartouches, tu dessines une architecture, et tu codes comme un adulte. Git garde les souvenirs, toi tu gardes la sérénité.