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

  1. Centrada en el Dominio:
    • Los desarrolladores entienden rápidamente qué hace la aplicación.
  2. Escalabilidad:
    • Es fácil agregar nuevos módulos de dominio sin reorganizar la estructura.
  3. Reducción de Complejidad:
    • Los detalles técnicos se encapsulan dentro de cada dominio.