Skip to content

Commit cbaa2f1

Browse files
committed
docs: agregar explicación de arquitectura y estructura modular
1 parent b3221c9 commit cbaa2f1

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ CtrlMP es una aplicación web que permite monitorear pagos en tiempo real utiliz
1717
- **CI/CD**: GitHub Actions
1818

1919
## Estructura del Proyecto
20+
2021
```
2122
CtrlMP/
2223
├── functions/ # Cloud Functions
@@ -28,6 +29,22 @@ CtrlMP/
2829
└── .github/ # Configuración de GitHub Actions
2930
```
3031

32+
## Sobre la Arquitectura del Proyecto
33+
34+
La estructura que implementamos se llama comúnmente "estructura por capas" o "arquitectura en capas", y más específicamente sigue el patrón de "arquitectura MVC (Modelo-Vista-Controlador)" extendido con componentes adicionales. En el contexto de aplicaciones de servidor como esta, también se le conoce como:
35+
36+
1. __Arquitectura por capas (Layered Architecture)__ - Separa la aplicación en capas lógicas: servicios, controladores, rutas, middleware, etc.
37+
38+
2. __Arquitectura basada en servicios (Service-based Architecture)__ - Donde la lógica de negocio se encapsula en servicios reutilizables.
39+
40+
3. __Arquitectura RESTful__ - Con rutas claramente definidas que siguen principios REST.
41+
42+
4. __Patrón MVC (Modelo-Vista-Controlador)__ extendido - Aunque no tenemos un componente de vista tradicional en una API, sí tenemos controladores y modelos (en este caso, servicios que actúan como modelos lógicos).
43+
44+
Esta estructura también incorpora principios de __separación de responsabilidades (SRP)__ del conjunto de principios SOLID, ya que cada archivo y directorio tiene una única responsabilidad bien definida.
45+
46+
En el contexto de Node.js y Express, esta organización se considera una __estructura modular__ o __estructura por módulos__, ya que cada componente (rutas, controladores, servicios) está encapsulado en módulos independientes que se importan y utilizan en el archivo principal.
47+
3148
## Configuración
3249

3350
### Prerrequisitos

0 commit comments

Comments
 (0)