A New Family of Software Anti-Patterns: Linguistic Anti-Patterns

✒ Enzo SandrĂ© · 📆 22/11/2021 · đŸ§© Design (Anti-)Patterns · #ïžâƒŁ Façonnage de code · đŸ—Łïž Nommage

👅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