Videos cómo este, valen oro. Cómo explicar un concepto que parece simple, pero realmente es difícil de comprender y aveces es necesario una explicación con ejemplos, tan detallada y limpia cómo está. Gracias, tienes algo más de esto por compartir?, me encanta DDD y buenas prácticas en general.
Minuto 50:44 Un sólo use case por controlador para respetar OCP (Open Closed Principle) y SRP(Single Responsability Principle) de SOLID a nivel de arquitectura
Sobre SRP, si tengo una entidad que comparte un método entre dos bounded contexts pero no se usa en un tercero como tendría que plantear esa responsabilidad?
De primero de UML. Una relació de agregación compuesta indica propiedad. Es dentro del TODO dode el objeto nace y muere. Vamos que es el padre el que manda, nadie puede tocarlo sin su permiso.
Lo que dice a lo último de que en los agregados no tienen que estar en la misma clase todo, sino que podría estar en diferentes clases pero que componga al otro objeto y tener los métodos separados pero que todo se tenga que llamar desde el root, el root tendría métodos que llaman a los métodos de las otras clases. ¿Lo he entendido bien?. Pero luego a la hora de persistir en la BD, todos compartirian tabla o cada uno estaría en una clase diferentes relacionados? Alguien que me ayude, Un saludo.
6 років тому
Hola 10crack8, lo que he entendido es que un agregado -> 1 repository -> 1 o más tablas.
SI el root tiene una funcion, numero pedidos por ejemplo, que calcula el numero de lineas sumando las lineas de pedido que cuelgan de el, no haria falta que fuera un agregado?
Hola Rafa. Tienes que mirar todas las operaciones que tiene el root. Si no hay ninguna que obligue a que pedido y las lineas sean un agregado, la operación de obtener el numero de lineas estará en el repository de lineas. Si es agregado, la operación estará en el root (ya que no habría repositorio de lineas). Me he explicado?
@@CarlosBuenosvinosZamora puede ser que yo conforme agregados dependiendo del caso de uso?, es decir, puede ser que para unos casos de uso con la orden tenga sentido el agregado, pero como para otro caso de uso no lo tenga, eso quiere decir que tendría un repository por agregado y por entidad. ¿Eso está bien?
@@CarlosBuenosvinosZamoratambien quisiera preguntar, cómo manejar la data, cuando tenemos un agregado tipo cuenta + transacciones. Y si DDD dice que los repositorios conforman este agregado, y tengo una cuenta con más de 1millon de transacciones, cuál sería la manera más efectiva de controlar este agregado, cuando queremos mantenerlo consistente, porque está claro que no deberíamos cargar a todo momento todas esas transacciones, pero siento que al ser un agregado me obliga a cargarlo desde el repo. ¿Algún consejo pra estas situaciones? Gracias.
Blocking amigo .. falta de implementacion de bloqueos.. SI totalmente se puede aplicar transacciones en agregados de echo tengo toda una arq completicima que lo permite
Me Quito el sombre estoy si es una Master Clase de Agregados , La mejor que he visto
Videos cómo este, valen oro. Cómo explicar un concepto que parece simple, pero realmente es difícil de comprender y aveces es necesario una explicación con ejemplos, tan detallada y limpia cómo está. Gracias, tienes algo más de esto por compartir?, me encanta DDD y buenas prácticas en general.
Me estaba costando demasiado entender este concepto, pero con este video me ha quedado muy claro. Gracias por exponer material tan valioso.
muy entretenido compañeros y didactico enhorabuena por el video muy chulo !! :)
Enhorabuena por los vídeos
Muchas gracias por este aporte
Muy bueno, útil y práctico. Gracias !!
Muy buen video, excelente explicación de como se deben identificar los Agregados. :+1
Este video es como buen vino.
Minuto 50:44 Un sólo use case por controlador para respetar OCP (Open Closed Principle) y SRP(Single Responsability Principle) de SOLID a nivel de arquitectura
Otra pista a la hora de diseñar agregados podría ser que el agregado completo debe manejar 1 nivel de abstracción
Sobre SRP, si tengo una entidad que comparte un método entre dos bounded contexts pero no se usa en un tercero como tendría que plantear esa responsabilidad?
Excelente aporte, recomiendas algún libro para profundizar?
De primero de UML. Una relació de agregación compuesta indica propiedad. Es dentro del TODO dode el objeto nace y muere. Vamos que es el padre el que manda, nadie puede tocarlo sin su permiso.
Lo que dice a lo último de que en los agregados no tienen que estar en la misma clase todo, sino que podría estar en diferentes clases pero que componga al otro objeto y tener los métodos separados pero que todo se tenga que llamar desde el root, el root tendría métodos que llaman a los métodos de las otras clases. ¿Lo he entendido bien?. Pero luego a la hora de persistir en la BD, todos compartirian tabla o cada uno estaría en una clase diferentes relacionados? Alguien que me ayude, Un saludo.
Hola 10crack8, lo que he entendido es que un agregado -> 1 repository -> 1 o más tablas.
SI el root tiene una funcion, numero pedidos por ejemplo, que calcula el numero de lineas sumando las lineas de pedido que cuelgan de el, no haria falta que fuera un agregado?
Hola Rafa. Tienes que mirar todas las operaciones que tiene el root. Si no hay ninguna que obligue a que pedido y las lineas sean un agregado, la operación de obtener el numero de lineas estará en el repository de lineas. Si es agregado, la operación estará en el root (ya que no habría repositorio de lineas). Me he explicado?
@@CarlosBuenosvinosZamora puede ser que yo conforme agregados dependiendo del caso de uso?, es decir, puede ser que para unos casos de uso con la orden tenga sentido el agregado, pero como para otro caso de uso no lo tenga, eso quiere decir que tendría un repository por agregado y por entidad. ¿Eso está bien?
@@CarlosBuenosvinosZamoratambien quisiera preguntar, cómo manejar la data, cuando tenemos un agregado tipo cuenta + transacciones.
Y si DDD dice que los repositorios conforman este agregado, y tengo una cuenta con más de 1millon de transacciones, cuál sería la manera más efectiva de controlar este agregado, cuando queremos mantenerlo consistente, porque está claro que no deberíamos cargar a todo momento todas esas transacciones, pero siento que al ser un agregado me obliga a cargarlo desde el repo.
¿Algún consejo pra estas situaciones? Gracias.
Blocking amigo .. falta de implementacion de bloqueos.. SI totalmente se puede aplicar transacciones en agregados de echo tengo toda una arq completicima que lo permite
Genial, gracias por compartirlo. Ya se que llego un poco tarde, pero hay repo en github para estudiar un poco el código?
github.com/dddinphp/last-wishes :-)
,,,
Si estas muerto puedes leer tus últimos deseos?