Evaluar la arquitectura en capas frente a otros estilos permite elegir la estrategia adecuada para cada proyecto y planificar pasos evolutivos. A continuación repasamos sus diferencias con la arquitectura monolítica tradicional, la relación con modelos hexagonales y limpios, y los casos donde sigue siendo la opción preferible.
En la arquitectura monolítica tradicional, la lógica de negocio, la interfaz y la persistencia suelen mezclarse en un mismo conjunto de clases o procedimientos. Esto provoca acoplamientos fuertes y dificulta la evolución iterativa.
La arquitectura en capas introduce barreras explícitas que separan responsabilidades, incluso cuando el despliegue sigue siendo un monolito.
// Monolito: mezcla de UI y persistencia
public class ReservaAction {
public void ejecutar(HttpServletRequest request) {
Connection conn = dataSource.getConnection();
// Validaciones, reglas y SQL juntos
}
}
// En capas: cada responsabilidad en su lugar
public class ReservaController {
private final ReservarSala reservarSala;
public void crear(ReservaRequest request) {
reservarSala.ejecutar(request.toCommand());
}
}
public class ReservarSala {
private final ReservaRepositorio repositorio;
public void ejecutar(ReservarSalaCommand command) {
// Reglas de negocio aisladas
repositorio.guardar(command.toReserva());
}
}
Las arquitecturas hexagonal y limpia comparten objetivos con el modelo en capas: mantener el dominio independiente de los detalles. La diferencia radica en cómo se organiza el círculo de responsabilidades.
Un sistema puede iniciar en capas y evolucionar hacia una arquitectura hexagonal para soportar adaptadores plug-in o integraciones complejas. Las capas sirven como etapa intermedia al ya fomentar la inversión de dependencias.
La arquitectura en capas conserva valor en numerosos escenarios:
Incluso dentro de arquitecturas modernas basadas en microservicios, es habitual mantener capas internas para conservar la claridad en cada servicio.
Las categorías no son excluyentes. Es posible combinar capas con patrones hexagonales:
Con esta comparación en mente es más sencillo valorar cuándo potenciar la arquitectura en capas y cuándo conviene migrar gradualmente hacia enfoques alternativos. En el siguiente tema cerraremos el tutorial con conclusiones y pasos sugeridos para profundizar.