Là, je suis un peu moins d'accord.
Le temps, il faut le prendre. Si on a trouver le temps de codé une fonctionnalité, d'écrire des tests unitaires et fonctionnels (pas forcement dans cet ordres => TDD
) on doit pouvoir prendre un peu de temps pour le refactoring.
Quand cela est nécessaire? Mieux que le livre de Martin Fowler, qui donne un très bonne base de (re)lecture de son code, je prônerais pour l'utilisation d'outils d'analyse statique de code (comme par exemple les outil lint, pylint, lintj4, jslint, FxCop...)
Ces outils donnent une note objective sur des règles modernes et incite une vrai politique de normalisation du code professionnel.
Cela peut mettre en évidence un complexité (cyclomatique) trop haute, comme des nommages de variables/classes/fonctions mal adaptées, des copiers-collers (qui peuvent vite devenir des copiers-merdés
) ou des avertissements de problèmes potentiels.
Pour moi, le refactoring n'est pas une option, mais cela fait partie du travail de développement logiciel au même titre que l'analyse des besoins utilisateurs et que les tests unitaires et fonctionnels.
Mais comme d'autres l'ont indiqué, cela nécessite un certain recule dans ses pratiques de developpement: pas sûr qu'un étudiant ou un jeune diplômé l'ait.
Ouf, les vieux briscards ont encore des choses à leur apprendre
Partager