đ Le code nâest pas Ă©crit pour les machines, qui se contentent de signaux Ă©lectriques, mais pour les humains ! Il est donc normal de retrouver des antipatterns linguistiques et autres dettes de langage dans un code.
4 chercheurs ont tenté de classifier les antipatterns linguistiques dans le code. Ils ont trouvé 6 familles, 3 pour les attributs, 3 pour les méthodes.
1) Les mĂ©thodes qui font plus quâelles ne disent (effets de bord).
2) Les mĂ©thodes qui disent plus quâelles ne font.
3) Les mĂ©thodes qui font lâopposĂ© de ce quâelles disent.
4) Les attributs dont le nom promet plus quâils ne contiennent
5) Les attributs qui contiennent plus que ce que promet leur nom
6) Les attributs qui contiennent lâopposĂ© de ce quâindique leur nom
Ces familles contiennent des antipatterns, comme ces Get impurs qui sont bien plus que des accesseurs, ces âIsXâ qui renvoient autre chose quâun boolĂ©en, ces commentaires qui contredisent ce quâils illustrent ou encore ces mĂ©thodes de transformation qui ne retournent rien.
Bien entendu leur travail nâest quâun premier pas, il existe de nombreux autres antipatterns, sur les noms des classes par exemple. Mais il a le mĂ©rite de lancer le sujet, inexplorĂ© avant eux.
SOURCE
Arnaoudova, Venera & Di Penta, Massimiliano & Antoniol, Giuliano & Guéhéneuc, Yann-Gaël. (2013). A New Family of Software Anti-Patterns: Linguistic Anti-Patterns. Proceedings of the European Conference on Software Maintenance and Reengineering, CSMR. 10.1109/CSMR.2013.28.
Enzo Sandré
DOIs: 10.1109/CSMR.2013.28