Codigo limpio y refactorización
Arquitectura que "grita" el Dominio
En esta arquitectura, la estructura del proyecto refleja el dominio del problema, no los detalles técnicos. Los nombres de carpetas y archivos están orientados al negocio, facilitando la comprensión del sistema.
Estructura típica
src/
├── domain/ # Entidades y lógica de dominio
│ ├── user/
│ │ ├── User.js
│ │ ├── userService.js
│ │ ├── userRepository.js
│ │ └── userController.js
│ ├── product/
│ ├── Product.js
│ ├── productService.js
│ ├── productRepository.js
│ └── productController.js
│
├── shared/ # Recursos compartidos
│ ├── utils/
│ │ ├── logger.js
│ │ └── errorHandler.js
│ └── config/
│ ├── database.js
│ └── environment.js
│
└── index.js # Punto de entrada
Ventajas de Screaming Architecture
- Centrada en el Dominio:
- Los desarrolladores entienden rápidamente qué hace la aplicación.
- Escalabilidad:
- Es fácil agregar nuevos módulos de dominio sin reorganizar la estructura.
- Reducción de Complejidad:
- Los detalles técnicos se encapsulan dentro de cada dominio.