Domain driven design
-
Author
gustavo-de-la-cruz-tovar -
Category
Technology
-
view
319 -
download
4
Embed Size (px)
description
Transcript of Domain driven design
- 1. Domain Driven Design Viernes 21 de Marzo Innbit
2. Enfoque tradicional de diseo De los casos de uso, se presume que es suficiente para que ... los equipos de Desarrollo construyan un sistema ! PERO NO ES SUFICIENTE ! 3. Al disear un sistema, pensarlo en trminos del Dominio del problema a resolver No disear en trminos tcnicos o problemas de TI 4. Por tanto el concepto de dominio ... Ayuda a entender el contexto del problema a ser resuelto por un sistema de software Y permite expresar el problema y la solucin en trminos de un lenguaje comn a todos los que involucrados. 5. Model Driven Design 6. Ubiquitous Language 7. Bounded Context Importante definir el contexto en el cual el dominio aplica El mapa de contexto es la vista global de todos los contextos que participan La consistencia de los contexto se debe garantizar a travs de integracin continua 8. Como cualquier modelo, el meta modelo no es facil de digerir ... Manera de guardar informacin: Entity, Value Object Encapsular Complejidad del modelo: Aggregate Procesamiento del Modelo: Service Construccin del Modelo: Factory Instrumentacin del modelo: Event Persistencia del modelo: Repository 9. Entity Tienen una identidad que los hace nico An object that is not defined by its attributes, but rather by a thread of continuity and its identity. 10. Value Object An object that contains attributes but has no conceptual identity. They should be treated as immutable. 11. Aggregate A collection of objects that are bound together by a root entity, otherwise known as an aggregate root. The aggregate root guarantees the consistency of changes being made within the aggregate by forbidding external objects from holding references to its members. Encapsula complejidad 12. Domain Service When an operation does not conceptually belong to any object. Following the natural contours of the problem, you can implement these operations in services Servicio no tiene estado Agnosticos a la infraestructura de servicios subyacente 13. Factory Methods for creating domain objects should delegate to a specialized Factory object such that alternative implementations may be easily interchanged. La manera para construir y ensamblar los bloques del dominio 14. Repository Methods for retrieving domain objects should delegate to a specialized Repository object such that alternative storage implementations may be easily interchanged. El concepto de repositorio es que el lenguaje del dominio sea agnstico al esquema de almacenamiento y la implantacin del repositorio sea facilmente intercambiable Soportar esquemas de RDBMS, NoSQL, InMemory Database, entre otros 15. Architecture 16. Application Una aplicacin es cliente del modelo del dominio. La aplicacin se especifica con los casos de uso Une la presentacin, comunicacin e infraestructura 17. El mapa completo ... 18. Command & Query Responsibility Segregation - Diferente modelo para consultar que para modificar - 19. Un ejemplo de uso de DDD http://www.opentaps.org/docs/index. php/Domain_Driven_Architecture 20. xDD 21. ! Gracias !