Dominio y casos de uso
El centro de la arquitectura hexagonal son las reglas de negocio y las acciones que la aplicacion permite ejecutar.
Dominio
El dominio contiene conceptos del negocio:
txt
Order
Money
Invoice
Course
EnrollmentDebe ser independiente de frameworks, controladores, ORM y proveedores externos.
Casos de uso
Un caso de uso representa una intencion:
txt
ConfirmOrder
PublishCourse
CancelEnrollment
CapturePaymentNo es simplemente un metodo CRUD. Debe expresar algo que el sistema permite hacer.
Entrada del caso de uso
Usa comandos o DTOs internos:
txt
ConfirmOrderCommand
orderId
requestedByEvita pasar objetos HTTP, modelos de ORM o eventos externos directamente al caso de uso.
Salida del caso de uso
Puede devolver:
- Resultado de operacion.
- DTO de lectura.
- Identificador creado.
- Nada, si la accion solo produce efecto.
- Error de dominio o aplicacion.
Dependencias
El caso de uso puede depender de puertos:
txt
OrderRepository
PaymentGateway
EventPublisher
ClockNo debe depender de implementaciones concretas.
Checklist
- Los casos de uso tienen nombres de negocio.
- El dominio no importa tecnologia.
- La entrada esta desacoplada del transporte.
- Las dependencias externas son puertos.
- Las reglas criticas viven en dominio o aplicacion, no en adaptadores.
