Arquitectura del Sistema

Estructura, patrones y organización del código en el proyecto E2D

Estructura de Capas

Capa de Presentación

Componentes React, páginas Next.js y elementos de UI. Se encarga únicamente de mostrar datos y capturar interacciones del usuario.

app/ - Páginas y layouts de Next.js
components/ - Componentes reutilizables
components/ui/ - Componentes base de shadcn/ui
Capa de Dominio

Lógica de negocio, tipos TypeScript y reglas de validación. Independiente de frameworks y librerías externas.

types/ - Interfaces y tipos TypeScript
lib/ - Utilidades y lógica de negocio
hooks/ - Custom hooks de React
Capa de Datos

Acceso a APIs, bases de datos y servicios externos. Implementa interfaces definidas en la capa de dominio.

api/ - Route handlers de Next.js
services/ - Servicios externos
content/ - Contenido MDX del blog

Patrones de Diseño

Container-Presenter

Separación entre componentes que manejan lógica (containers) y componentes que solo presentan datos (presenters).

Composition over Inheritance

Uso de composition patterns de React para crear componentes flexibles y reutilizables.

Repository Pattern

Abstracción del acceso a datos a través de interfaces bien definidas para facilitar testing y mantenimiento.

Factory Pattern

Creación de objetos complejos (como clientes de API) a través de factories que encapsulan la lógica de construcción.