Quisiera análisis los dominios, pero no los encuentro
Hola chicos, ante todo excelente trabajo que hacen con su canal, compartí mí agradecimiento por como comparten conocimiento.
Estoy destilando DDD, paso a paso con el libro aunque quiero empezar a entender mucho más aspectos. Entonces quisiera ver el diseño de los dominios que tiene como ejemplo pero veo que no están en el repo. Pueden compartir ese info?
¡Buenas!
En el repo https://github.com/CodelyTV/java-ddd-skeleton tienes bastante más código de dominio 😊
Al final en este repo (java-ddd-example) lo que tendremos será el "snapshot" del java-ddd-skeleton en su estado más avanzado. Lo que hay ahora mismo fue una pequeña prueba de concepto que tenemos pendiente de reemplazar 👼
Aquí algunos puntos interesantes del repo que se van viendo de forma progresiva analizando cada uno en el curso de DDD en Java:
-
CoursesGetController: Punto de entrada para peticiones HTTP de tipoGETdel recursoCoursespara la aplicaciónbackoffice/backend -
SearchBackofficeCoursesByCriteriaQuery: Query que lanza alQueryBuselCoursesGetControllercon el fin de obtener losCoursesen base a unos determinados criterios de filtrado recibidos por la peticiónGET -
SearchBackofficeCoursesByCriteriaQueryHandler: Handler al que llega la Query anterior para ser mapeada de valores en primitivos a Value Objects del dominio y ejecutar el Application Service o caso de uso -
BackofficeCoursesByCriteriaSearcher: Application Service que encapsula la lógica de negocio necesaria para hacer búsquedas deCoursesa través del Repositorio -
BackofficeCourseRepository:interfacea modo de contrato de dominio (packagebackoffice/courses/domain) para invertir la dependencia (Dependency Inversion Principle de SOLID) y servir a modo de puerto en términos de Ports & Adapters o Arquitectura Hexagonal -
MySqlBackofficeCourseRepository: Implementación a nivel de infraestructura para servir a modo de adaptador en términos de _Ports & Adapters. En este caso para MySQL -
ElasticsearchBackofficeCourseRepository: Implementación alternativa del mismo contrato de dominio pero en este caso para Elasticsearch -
BackofficeCourse: Agregado que devuelven los repositorios
Un saludo y cualquier cosa aquí estamos 🤟