CodelyTV / java-ddd-example

♨️ DDD in Java skeleton & examples. Course:
https://pro.codely.tv/library/ddd-en-java/about/
424 stars 204 forks source link

Porque NewCoursesNewsletterSender rompe los limites ? #80

Closed kmiiloberrio-dev closed 1 year ago

kmiiloberrio-dev commented 1 year ago

Revisando un poco el codigo de NewCoursesNewsletterSender me doy cuenta de que rompe los limites al usar SearchLastCoursesQuery y CoursesResponse.

Incluso revisando el dominio de NewCoursesNewsletter, también conoce de application.

Lo que se menciona dentro del libro CleanArchitecture, en los capítulos 16, 17, 18. Es tratar de mantener capas verticales relacionados con lo que hace el sistema (casos de uso). Los casos de uso cambian por diferentes razones y a diferentes ritmos entre sí, por lo tanto, deben protegerse entre sí.

Me gustaría saber, si hay una razón del porque romper los limites en este componente, pues me encuentro estudiando todo esto y quería compartir mi preocupación.

JavierCane commented 1 year ago

¡Buenas!

La query SearchLastCoursesQuery es un DTO que se tira al Query Bus (https://github.com/CodelyTV/java-ddd-skeleton/blob/main/src/mooc/main/tv/codely/mooc/notifications/application/send_new_courses_newsletter/NewCoursesNewsletterSender.java#L36), y el CoursesResponse es el DTO de respuesta.

Esto es la forma de comunicarnos entre distintos subdominios o servicios. Lo explicamos en más detalle en los cursos de Comunicación entre [micro]servicios y también en el de CQRS.

¡Saludos!