Skip to content

Errores comunes

Clean Architecture se puede aplicar mal. Cuando ocurre, el proyecto gana carpetas pero pierde claridad.

Confundir arquitectura con carpetas

Crear domain, application e infrastructure no basta. Si el dominio sigue dependiendo del ORM o los casos de uso siguen llenos de detalles HTTP, solo se ha cambiado el nombre de las carpetas.

Crear abstracciones inutiles

No todo necesita una interfaz. Una interfaz aporta valor cuando:

  • Hay varias implementaciones reales.
  • Quieres proteger un caso de uso de un detalle externo.
  • Necesitas tests rapidos sin infraestructura.
  • El proveedor puede cambiar.

Si solo existe una implementacion y no hay motivo de cambio, puede esperar.

Anemia de dominio

Un dominio anemico tiene entidades sin comportamiento y servicios gigantes que hacen todo.

txt
OrderService.confirm(order)

Puede ser mejor:

txt
order.confirm()

La regla vive con los datos que protege.

Casos de uso demasiado pequenos

No todos los metodos CRUD merecen un caso de uso aislado si no expresan una intencion real.

Mal:

txt
UpdateUserUseCase

Mejor:

txt
ChangeUserEmailUseCase
DisableUserUseCase
AcceptUserInvitationUseCase

Filtrar detalles hacia dentro

Ejemplos tipicos:

  • Entidades con decoradores del ORM.
  • Casos de uso que reciben Request.
  • Dominio que lanza errores HTTP.
  • Repositorios que devuelven modelos de base de datos.

Sobrearquitectura

No todos los proyectos necesitan Clean Architecture completa. Para un MVP, puede bastar con separar controladores, servicios y repositorios. La arquitectura debe acompanarte, no bloquearte.

Checklist de revision

  • Puedes explicar cada capa sin hablar del framework.
  • Puedes probar el dominio sin infraestructura.
  • Puedes cambiar la base de datos tocando pocos archivos.
  • Los nombres reflejan negocio, no solo CRUD.
  • La estructura ayuda a leer el sistema.