Arquitectura por capas
La arquitectura por capas divide una aplicación en niveles con responsabilidades específicas. Cada capa se comunica con las adyacentes y evita asumir tareas que no le corresponden.
Las tres capas
Sección titulada «Las tres capas»Haz clic en cada capa para ver sus responsabilidades específicas:
- Expone los endpoints HTTP
- Valida el formato de la petición
- Serializa las respuestas a JSON
- Asigna los códigos de estado HTTP
- Puede manejar autenticación
- No contiene lógica de negocio
- Implementa las reglas de negocio
- Coordina entidades y transacciones
- Realiza cálculos y transformaciones
- Controla el flujo de la operación
- No conoce detalles de HTTP ni de la base de datos
- Ejecuta operaciones SQL u ORM
- Mapea objetos a tablas
- Administra las conexiones
- Ofrece operaciones CRUD
- Optimiza el acceso a los datos
- No decide reglas de negocio
Separación de responsabilidades, cohesión y acoplamiento
Sección titulada «Separación de responsabilidades, cohesión y acoplamiento»- Separación de responsabilidades: cada capa tiene un propósito. Si cambia la base de datos, el impacto debería concentrarse en persistencia.
- Alta cohesión: los elementos de una capa trabajan sobre tareas relacionadas entre sí.
- Bajo acoplamiento: las capas dependen de interfaces o abstracciones. La lógica conoce un repositorio, no si la implementación usa MySQL o MongoDB.
Flujo de creación de una orden
Sección titulada «Flujo de creación de una orden»Sigue una orden a través de las capas
Avanza paso a paso y observa cómo una misma operación cambia de responsabilidad.
Escenario
POST /ordersRecibir la petición
La API recibe POST /orders y valida el formato y la autenticación.
POST /ordersVentajas y desventajas
Sección titulada «Ventajas y desventajas»| Ventajas | Desventajas |
|---|---|
| Separación clara de responsabilidades | Complejidad adicional |
| Mayor mantenibilidad | Sobrecosto de rendimiento entre capas |
| Pruebas aisladas por capa | Rigidez y cambios en cascada |
| Reutilización de la lógica | DTO repetitivos |
| Trabajo en equipo | Curva de aprendizaje |
| Mejor control de seguridad | Depuración a través de varias capas |