Si tu es là, c’est que tu as peut-être déjà croisé ce fameux « code mort » qui traîne dans les recoins sombres de ton projet. Et si tu n’as pas encore osé le supprimer, tu n’es pas seul. Beaucoup d’entre nous hésitent, par peur de casser quelque chose. Mais laisse-moi te dire : un bon nettoyage n’a jamais fait de mal à personne ! Alors, comment repérer ce code inutile ? C’est parti !
Qu’est-ce que le code mort ?
Le code mort, c’est tout simplement du code qui n’est jamais exécuté. Il peut s’agir de fonctions obsolètes, de variables non utilisées, de branches conditionnelles toujours fausses… Bref, de tout ce qui ne sert à rien.
Pourquoi s’en débarrasser ?
Un code propre, c’est un code qui respire. Le code mort alourdit inutilement ton projet, le rend plus difficile à lire, à maintenir et peut même introduire des bugs. Sans parler de la satisfaction de voir ta codebase s’alléger !
Comment le repérer ?
Utilise des outils d’analyse statique
Des outils comme ESLint
pour JavaScript ou Pylint
pour Python peuvent te signaler du code non utilisé. Ils scrutent ton code à la recherche de fonctions, variables ou imports qui ne sont jamais utilisés.
C’est utile, mais attention, loin d’être infaillible. Disons à priori s’il pense que la variable n’est jamais utilisée ou qu’une branche de code ne peut jamais être atteinte, c’est probablement vrai. Mais cela reste une analyse statique : il y a des cas qu’il ne détectera pas en dynamique.
// Si tu as ça
const unusedVar = "I'm useless!";
// ESLint te le fera savoir !
Profilage de code
Des outils de profilage te permettent de voir quelles parties de ton code sont exécutées lors de l’exécution de ton application. Si une partie n’est jamais touchée, c’est peut-être du code mort.
Tests de couverture
En exécutant tes tests avec un outil de couverture de code, tu peux voir quelles parties de ton code ne sont jamais testées. Bien sûr, cela suppose que tu as une bonne couverture de tests !
Si tu n’as pas de tests, tu peux essayer d’instrumenter ton code de production et mettre en prod pour une partie de tes utilisateurs. Attention, cela risque de poser des problèmes de performance, mais au moins tu auras du retour réel de ce qui est utilisé ou pas, si tu laisses tourner assez longtemps.
Cherche le code commenté
Tu sais ce morceau de code pour « on ne sait jamais quand ». Et bien tu n’en n’auras probablement jamais besoin. Et si c’était le cas, ton gestionnaire de version, git probablement, serait là pour t’aider.
Si vraiment tu as un doute, pose un tag sur ton repo histoire de facilement retrouver les choses au cas où. Mais tu sais quoi ? Tu n’en n’auras pas besoin. Alors fonce !
Recherche dans le projet
Une simple recherche dans ton IDE ou éditeur de texte peut te montrer si une fonction ou une variable est utilisée ailleurs dans le code. Si ce n’est pas le cas, tu peux probablement la supprimer, à moins qu’elle soit utilisée par autre chose comme le framework par exemple.
Supprime et observe
Cela peut sembler radical, mais parfois, la meilleure façon de voir si quelque chose est nécessaire est de le supprimer et de voir si tout fonctionne toujours. Bien sûr, assure-toi d’avoir un système de contrôle de version comme Git pour pouvoir revenir en arrière si nécessaire !
L’air de rien, cela sous entend aussi d’être capable de tester tes modifications ! Si ce n’est pas le cas, ne fait pas ça !
Quelques précautions
Sois prudent avec les bibliothèques et les frameworks
Certains morceaux de code peuvent sembler inutilisés, mais ils sont nécessaires pour le bon fonctionnement d’une bibliothèque ou d’un framework, comme du code de configuration par exemple.
Fais des revues de code
Demande à un collègue de jeter un œil. Deux paires d’yeux valent mieux qu’une !
Et tant qu’à y être, faites le en binôme. C’est pour moi la meilleure revue de code. Si bosser en binôme est nouveau, inconfortable ou simplement si tu es curieux, je t’ai préparé le guide parfait pour bosser en binôme.
Teste après avoir supprimé
Après avoir supprimé du code mort, exécute ton application et tes tests pour t’assurer que tout fonctionne toujours correctement.
Bon, on le dira jamais assez : si le compilateur compile, c’est pas forcément que ça marche. C’est juste que ça compile ! Donc à chaque fois que tu changes des choses, teste, teste, et re-teste.
Bref
Le code mort, c’est un peu comme ces vieux vêtements qui encombrent ton placard. Tu n’en as plus besoin, ils prennent de la place, alors pourquoi les garder ? Avec les bonnes techniques et un peu de courage, tu peux rendre ton code plus propre, plus léger et plus efficace.
Pour aller plus loin
Nettoyer son code des parties inutiles est un geste de base du refactoring. Si tu veux aller plus loin, je t’ai préparer un guide pour bien démarrer dans cette pratique.