Antipatrones, Code Smells, ... USTED NO LO HAGA

Acá escribiré mi propia colección de antipatrones o code smells, existen muchos, pero dejaré los que más me llaman la atención (o son más feos)
  • Usar el sufijo Impl

    Verlo me duelen los ojos, ¿que quieren decir con Impl? nadie lo sabe, ¿no saben que quieren expresar? ¿hay un mal uso de interfaces/implementaciones (muy probable)?, tienen una interface y la unica clase que la implementa es la Impl ¡horrible! ¿problema de diseño?, supongo que tienen claro que no tendrán una nueva implementación, y si la tienen ¿le pondrán Impl2, Impl3?, me imagino que les encantaria tener una interface llamada List y cuando instancian le pondrían List l1 = new ListImpl() o List l2 = new ListImpl2()...

  • Usar el prefijo I en interfaces

    Es tan desagradable como el anterior, ¿que quieren expresar con eso? ¿no saben que es lo que están diseñando? ¿es una restricción que les imponen? por que realmente no tiene una explicación lógica, tienen que tener claro lo que están representando para poder expresar correctamente lo que están diseñando.

  • La maravilla de los test sin asserts

    Son métodos destinados a hacer test, llenos de mocks, stubs, y nuevos objetos y bla bla bla, pero sin un solo assert ¿que están validando? quizas sea que se ejecuta todo y no se muere con una exception ¿? ¿los agregarán para tener cobertura de las clases?

  • Continuará...

Comentarios

Entradas más populares de este blog

Spring Boot + Spring Security + React + Keycloak

Servicios: Invertir las dependencias utilizando el sistema de módulos

Usando Redis en Pruebas [versión 2]