java-ddd-example-deprecated icon indicating copy to clipboard operation
java-ddd-example-deprecated copied to clipboard

Quisiera análisis los dominios, pero no los encuentro

Open raalzate opened this issue 6 years ago • 1 comments

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?

raalzate avatar Feb 13 '20 12:02 raalzate

¡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 tipo GET del recurso Courses para la aplicación backoffice/backend
  • SearchBackofficeCoursesByCriteriaQuery: Query que lanza al QueryBus el CoursesGetController con el fin de obtener los Courses en base a unos determinados criterios de filtrado recibidos por la petición GET
  • 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 de Courses a través del Repositorio
  • BackofficeCourseRepository: interface a modo de contrato de dominio (package backoffice/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 🤟

JavierCane avatar Feb 14 '20 08:02 JavierCane