Menos refactor, lleva a código menos mantenible, que nos lleva a tardar más tiempo en implementar nuevas funcionalidades, lo cuál nos mete más presión de tiempo, lo que nos lleva a testear menos, lo que nos lleva a refactorizar menos… Es un círculo vicioso que puede tener un efecto muy desmoralizador.
Muchos desarrolladores no se dan cuenta de los problemas del código que están generando cuando aún son pequeños.
catálogo de code smells en un capítulo del libro, Refactoring: Improving the Design of Existing Code.
Ha habido diferentes intentos de clasificar los code smells agrupándolos según diferentes criterios.
Wake 2004. Wake en su libro Refactoring Workbook de
Smells within Classes
Measured Smells:
Names: code
Unnecessary Complexity:
Duplication: la némesis de los desarrolladores.
Conditional Logic Smells:
Smells between Classes
Data:
Responsibility:
Accommodating Change:
Library Classes:
Bloaters, Object-Orientation Abusers, Change Preventers, Dispensables, Encapsulators, Couplers y Others.
Mäntylä
artículo: A Taxonomy for “Bad Code Smells”.
En la tesis de master de Jerzyk se pueden encontrar descripciones y discusiones sobre cada uno de estos 56 code smells.