Layered Architecture (N-Layer)
La arquitectura por capas (Layered Architecture) separa el código según responsabilidades comunes, como presentación, lógica de negocio y acceso a datos. Es ideal para aplicaciones empresariales que requieren modularidad.
1. Estructura típica #
src/
├── controllers/ # Manejo de solicitudes (capa de presentación)
│ ├── userController.js
│ ├── productController.js
│
├── services/ # Lógica de negocio
│ ├── userService.js
│ ├── productService.js
│
├── repositories/ # Acceso a datos
│ ├── userRepository.js
│ ├── productRepository.js
│
├── models/ # Modelos de datos (ORM o definiciones)
│ ├── userModel.js
│ ├── productModel.js
│
├── utils/ # Funciones auxiliares
│ ├── logger.js
│ ├── dateFormatter.js
│
├── config/ # Configuración del proyecto
│ ├── database.js
│ ├── environment.js
│
├── tests/ # Pruebas unitarias e integración
│ ├── user.test.js
│ ├── product.test.js
│
└── index.js # Punto de entrada de la aplicación
2. Ventajas de la Arquitectura por Capas #
- Separación de Responsabilidades:
- Cada capa tiene un propósito claro.
- Reusabilidad:
- Servicios y repositorios se pueden reutilizar en múltiples controladores.
- Facilidad para Probar:
- Es sencillo probar capas individuales de forma aislada.
Resumen del tema
Conceptos clave #
- Arquitectura en N Capas (Layered Architecture): división horizontal del sistema en capas con responsabilidades técnicas delimitadas (Controladores/Presentación, Servicios/Negocio, Repositorios/Acceso a Datos, Modelos).
- Regla de Comunicación Unidireccional: cada capa solo se comunica con su capa adyacente inferior.
- Separación Técnica: facilita el reparto de trabajo por especialidad y el testing aislado de la lógica de negocio simulando repositorios.
Qué debes recordar #
La arquitectura en capas organiza el proyecto separando la presentación, la lógica de negocio y el acceso a datos para modularizar el sistema.