À retenir
- Améliore la qualité interne du code sans modifier le comportement externe.
- Facilite le travail d'équipe et la correction de futurs bugs.
- Réduit la dette technique du projet sur le long terme.
La refactorisation consiste à réorganiser le code source d'un logiciel pour le rendre plus propre et plus lisible, sans pour autant changer ce que fait le programme final. C'est comme ranger un bureau encombré : le travail accompli reste le même, mais on y voit plus clair et on devient plus efficace.
Étymologie
Vient du verbe anglais refactor. Le terme s'inspire de la factorisation en mathématiques, qui consiste à décomposer un nombre ou une expression. En programmation, on décompose le code pour mieux le structurer sans en changer le résultat.
Exemples d'usage
- Remplacer des noms de variables flous comme
aoutemppar des noms explicites commeprixTotalTTC. - Extraire un bloc de code répété dix fois pour en faire une seule fonction réutilisable.
- Découper un script massif de 1000 lignes en plusieurs petits fichiers organisés par thématique.
Cas d'usage
Ce concept intervient durant la phase de maintenance d'un projet, avant l'ajout d'une nouvelle fonctionnalité complexe, ou lors d'une revue de code pour éliminer la "dette technique" (le code mal écrit qui s'accumule avec le temps).
Bonnes pratiques
Il est indispensable d'avoir des tests automatisés avant de commencer : ils garantissent que vos modifications n'ont pas cassé le programme. Procédez par petites étapes plutôt que de vouloir tout changer d'un coup, et utilisez un outil de versionnage (comme Git) pour pouvoir revenir en arrière en cas d'erreur.
Synonymes
Antonymes
Conseil
Si vous débutez, ne cherchez pas le code parfait dès le premier jet. Écrivez d'abord quelque chose qui fonctionne, puis prenez le temps de le refactoriser pour le rendre élégant et compréhensible pour les autres (ou pour vous-même dans six mois).
Questions fréquentes
Est-ce que refactoriser permet de corriger des bugs ?
Pas directement. Le but est de clarifier le code, ce qui rend les bugs existants beaucoup plus visibles et faciles à éliminer par la suite.
Quelle est la différence avec une réécriture ?
Une réécriture repart souvent de zéro, alors que la refactorisation transforme le code existant par petites touches successives.