Je dois étendre un module existant d'un projet. Je n'aime pas la façon dont cela a été fait (beaucoup d'anti-pattern impliqué, comme du code copier / coller). Je ne veux pas effectuer un refactor complet pour plusieurs raisons.
Devrais-je:
- créer de nouvelles méthodes en utilisant la convention existante, même si je me sens mal, afin d'éviter toute confusion pour le prochain responsable et d'être cohérent avec la base de code?
ou
- essayer d'utiliser ce que je me sens mieux même s'il introduit un autre motif dans le code?
Precison édité après les premières réponses:
Le code existant n'est pas un gâchis. C'est facile à suivre et à comprendre. MAIS il introduit beaucoup de code passe-partout qui peut être évité avec une bonne conception (le code résultant pourrait alors devenir plus difficile à suivre). Dans mon cas actuel, c’est un bon vieux module DAO JDBC (spring template inboard), mais j’ai déjà rencontré ce dilemme et je cherche d’autres commentaires de développeurs.
Je ne veux pas refacturer parce que je n'ai pas le temps. Et même avec le temps, il sera difficile de justifier le fait que tout un module qui fonctionne parfaitement nécessite une refactorisation. Le coût du refactoring sera plus lourd que ses avantages. Rappelez-vous: le code n'est pas compliqué ou compliqué. Je ne peux pas extraire quelques méthodes et introduire une classe abstraite ici. C'est plus une faille dans la conception (résultat de l'extrême 'Keep It Stupid Simple' je pense)
La question peut donc aussi être posée comme cela:
vous, en tant que développeur, préférez-vous conserver du code ennuyeux et stupide, ou avoir des assistants capables de faire le code ennuyeux à votre place?
L'inconvénient de la dernière possibilité est que vous devrez apprendre des choses et peut-être que vous devrez aussi maintenir le code bête et ennuyeux jusqu'à ce qu'une refactorisation complète soit effectuée)