Componentes lógicos
Los componentes de lógica son piezas de software que contienen la lógica de negocio de tu aplicación. Están organizados semánticamente por dominio o funcionalidad y sirven como la capa de orquestación entre controllers y adapters.
Propósito
Componentes de lógica:
Implementan las reglas de negocio y la lógica del dominio
Orquestan operaciones a través de múltiples adapters
Encapsulan flujos de trabajo complejos
Permiten permanecer independientes de las preocupaciones de la capa de transporte (HTTP, WebSocket)
Pueden ser completamente probados con unit tests sin dependencias de I/O
Ubicación
Los componentes de lógica DEBERÍAN colocarse bajo src/logic o src/components el directorio, organizados por dominio:
src/
└── logic/
├── users/
├── content/
├── permissions/
└── notifications/Características
1. Consumo de Adapters
Los componentes de lógica son los principales consumidores de adapters. Usan adapters para interactuar con recursos externos mientras se enfocan en las reglas de negocio.
2. Reglas de Negocio
Los componentes de lógica hacen cumplir las reglas de negocio y la validación:
3. Orquestación de Flujos de Trabajo
Los componentes de lógica coordinan operaciones complejas de múltiples pasos:
Buenas prácticas
1. Responsabilidad Única
Cada componente de lógica debe centrarse en un dominio o contexto acotado:
2. Inyección de Dependencias
Siempre inyectar las dependencias a través del parámetro components:
3. Manejo de Errores
Lanzar errores de dominio significativos que los controllers puedan capturar y manejar:
4. Lógica de Negocio Pura
Mantén los componentes de lógica libres de preocupaciones de la capa de transporte:
Pruebas de Componentes de Lógica
Los componentes de lógica deben ser probados exhaustivamente con unit tests. Consulta la Testing Services (WKC) documentación para más detalles.
Próximamente
Esta sección se ampliará con:
Ejemplos detallados de componentes de lógica orientados al dominio
Patrones para manejar flujos de trabajo complejos
Directrices para organizar lógica de dominio a gran escala
Integración con sistemas de eventos
Estrategias de caching
Patrones de gestión de transacciones
Última actualización