SlideShare una empresa de Scribd logo
1 de 22
DOMAIN-DRIVEN
DESING
LET’S GET STARTED
En un enfoque tradicional de diseño…
DOMAIN DRIVEN DESING
Presumimos que los casos de
uso son suficientes para que…
…los ingenieros de software
construyan un sistema.
En un enfoque tradicional de diseño…
DOMAIN DRIVEN DESING
Presumimos que los casos de
uso son suficientes para que…
…los ingenieros de software
construyan un sistema.
DOMAIN DRIVEN DESING
PERO NO SON
SUFICIENTES
¿De que se trata DDD?
DOMAIN DRIVEN DESING
Es un enfoque de desarrollo de software para necesidades complejas
enfocado en conectar profundamente la implementación con un modelo de negocios en
constante evolución
partiendo de la base del trabajo en equipo, la comunicación y colaboración constante
entre expertos técnicos (Ingenieros de Software) y expertos del dominio (Usuarios)
en contextos acotados de negocio
utilizando para ello un lenguaje ubicuo
“El software puede fallar por dos motivos: creamos las cosas mal o creamos las
cosas incorrectas”
Para implementar DDD:
DOMAIN DRIVEN DESING
• Lo primordial es mantener contacto constante y permanente con el experto del negocio utilizando un lenguaje ubicuo
• Mapea los dominios y sepáralos en subdominios
• Mira el panorama general del Proceso de Negocio As Is, aprendiendo sobre el dominio del problema
• Crea contextos acotados (Bounded Contexts) entre subdominios
• Idealmente, debe haber un equipo, una base de código y una base de datos diferentes para cada uno de los Bounded
Contexts
• Dado que todos estarían trabajando dentro de su propio Bounded Context, serían libres de cambiar cualquier cosa
dentro de este (siempre trabajando con los Expertos del Dominio y utilizando Lenguaje Ubicuo)
• Para todos los asuntos transversales que se comparten entre diferentes Bounded Contexts (lo llamamos Shared
Kernel), cualquier cambio debe ser conocido y acordado entre todos los equipos en cada Bounded Context afectado
(nuevamente, teniendo en cuenta que los equipos son conformados entre los expertos técnicos de sistemas y los
expertos del domino del negocio)
• Mantente siempre enfocado en los comportamientos del dominio en lugar del estado del dominio (favorece un
modelo rico sobre un modelo anémico)
¿Y qué no debemos hacer al implementar DDD?
DOMAIN DRIVEN DESING
1. Tener una vista centrada en los datos al modelar el dominio del problema.
Por lo general, el modelo de datos es lo primero que un arquitecto o ingeniero de software
comenzará a diseñar. Siempre consideran que los datos son lo más importante porque los
datos son todo lo que necesitamos informar. Con DDD, debemos cambiar este paradigma.
Los datos en sí mismos no tienen sentido. Sólo la lógica da a los datos un significado, y los
mismos datos pueden tener un significado diferente en contextos diferentes. Por lo tanto,
debemos comenzar con contexto y lógica en lugar de datos
¿Y qué no debemos hacer al implementar DDD?
DOMAIN DRIVEN DESING
2. Centrarse en los detalles de la implementación como entidades, objetos de
valor, servicios, fábricas y repositorios en lugar de los conceptos básicos del
negocio.
Las entidades, los objetos de valor, los repositorios, etc., no tienen un significado hasta que
definimos el lenguaje ubicuo, los contextos delimitados y las interfaces. Si comenzamos
pronto con los detalles de implementación como las entidades, entonces es muy probable
que el resultado sea un dominio anémico rodeado de una gran cantidad de servicios y lógica
empresarial dispersos por todas partes, que generan a su vez DEUDA TÉCNICA.
¿Y qué no debemos hacer al implementar DDD?
DOMAIN DRIVEN DESING
3. Usar términos y conceptos genéricos o técnicos de desarrollo al implementar
la aplicación.
Nunca debemos usar conceptos como save, update, delete, handle, manage, etc. Esos
conceptos son conceptos técnicos/abstractos y sin un significado específico para el usuario.
En cambio, debemos mantenernos enfocados en los conceptos de negocio. Los conceptos
mencionados anteriormente (es decir, save, update, etc.) no están relacionados con los
conceptos de negocios.
¿Y qué no debemos hacer al implementar DDD?
DOMAIN DRIVEN DESING
4. Sobreestimar las transacciones de bases de datos en lugar de centrarse en los
procesos y transacciones comerciales.
En DDD, las transacciones comerciales son más importantes que las transacciones de Bases
de Datos. Las transacciones de Bases de Datos son ACID, muy consistentes y de corta
ejecución, mientras que las transacciones comerciales no lo son. De hecho, en la vida real
solo conocemos las transacciones comerciales. Nunca pensemos en transacciones DB. En su
lugar, siempre pensemos en los procesos del mundo real, en las acciones (comportamientos)
y sus posibles resultados, y cómo compensar las acciones si se producen fallas.
¿Y qué no debemos hacer al implementar DDD?
DOMAIN DRIVEN DESING
1. Tener una vista centrada en los datos al modelar el dominio del problema.
2. Centrarse en los detalles de la implementación como entidades, objetos de
valor, servicios, fábricas y repositorios en lugar de los conceptos básicos del
negocio.
3. Usar términos y conceptos genéricos o técnicos de desarrollo al implementar
la aplicación.
4. Sobreestimar las transacciones de bases de datos en lugar de centrarse en los
procesos y transacciones comerciales.
DISEÑO
ESTRATÉGICO
ALGUNAS DEFINICIONES
¿Lenguaje Ubicuo, eso con que se come?
DOMAIN DRIVEN DESING
¿Y el contexto acotado?
DOMAIN DRIVEN DESING
CONTEXTO
DE LA VENTA
CONTEXTO
DEL SOPORTE
Modelado Conceptual Estratégico en DDD
DOMAIN DRIVEN DESING
DISEÑO TÁCTICO
OTRAS DEFINICIONES
Modelado Conceptual Táctico en DDD
DOMAIN DRIVEN DESING
Diseño Estratégico
DOMAIN DRIVEN DESING
Diseño Táctico
• AGREGADOS
• ENTIDADES
• OBJETOS DE VALOR
• SERVICIOS Y EVENTOS DEL DOMINIO
• REPOSITORIOS
• FACTORIAS
• ARQUITECTURA
El Meta Modelo Conceptual
DOMAIN DRIVEN DESING
DDD Y LOS
MICROSERVICIOS
ARQUITECTURA
Arquitectura en Capas y Microservicios
DOMAIN DRIVEN DESING
Presentation
Layer
API
Layer
Domain
Layer
Infraestructure
Layer
FUENTES
http://dddcommunity.org/

Más contenido relacionado

La actualidad más candente

What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...Edureka!
 
Devsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivoDevsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivoLuciano Moreira da Cruz
 
20190427 arquitectura de microservicios con contenedores
20190427 arquitectura de microservicios con contenedores20190427 arquitectura de microservicios con contenedores
20190427 arquitectura de microservicios con contenedoresRicardo González
 
Docker: From Zero to Hero
Docker: From Zero to HeroDocker: From Zero to Hero
Docker: From Zero to Herofazalraja
 
Microservicios y contenedores Docker
Microservicios y contenedores DockerMicroservicios y contenedores Docker
Microservicios y contenedores DockerPlain Concepts
 
Devops Adoption Roadmap v 2.7 Agiles Colombia 2020
Devops Adoption Roadmap v 2.7 Agiles Colombia 2020Devops Adoption Roadmap v 2.7 Agiles Colombia 2020
Devops Adoption Roadmap v 2.7 Agiles Colombia 2020Javier Dominguez
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to dockerInstruqt
 
Microservices in Practice
Microservices in PracticeMicroservices in Practice
Microservices in PracticeKasun Indrasiri
 
Docker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and ContainersDocker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and ContainersYajushi Srivastava
 
Introduction to DevOps | Edureka
Introduction to DevOps | EdurekaIntroduction to DevOps | Edureka
Introduction to DevOps | EdurekaEdureka!
 
Microservices Design Patterns | Edureka
Microservices Design Patterns | EdurekaMicroservices Design Patterns | Edureka
Microservices Design Patterns | EdurekaEdureka!
 
Getting started with Docker
Getting started with DockerGetting started with Docker
Getting started with DockerRavindu Fernando
 
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...Simplilearn
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architectureAbdelghani Azri
 
¿Qué es DevOps y por qué es importante en el Ciclo de Software? por michelada.io
¿Qué es DevOps y por qué es importante en el Ciclo de Software? por michelada.io¿Qué es DevOps y por qué es importante en el Ciclo de Software? por michelada.io
¿Qué es DevOps y por qué es importante en el Ciclo de Software? por michelada.ioSoftware Guru
 
Microservices Design Patterns Explained | Edureka
Microservices Design Patterns Explained | EdurekaMicroservices Design Patterns Explained | Edureka
Microservices Design Patterns Explained | EdurekaEdureka!
 
Platform engineering 101
Platform engineering 101Platform engineering 101
Platform engineering 101Sander Knape
 

La actualidad más candente (20)

What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
 
Ddd + ah + microservicios
Ddd + ah + microserviciosDdd + ah + microservicios
Ddd + ah + microservicios
 
Devsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivoDevsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivo
 
20190427 arquitectura de microservicios con contenedores
20190427 arquitectura de microservicios con contenedores20190427 arquitectura de microservicios con contenedores
20190427 arquitectura de microservicios con contenedores
 
Docker: From Zero to Hero
Docker: From Zero to HeroDocker: From Zero to Hero
Docker: From Zero to Hero
 
Microservicios y contenedores Docker
Microservicios y contenedores DockerMicroservicios y contenedores Docker
Microservicios y contenedores Docker
 
Devops Adoption Roadmap v 2.7 Agiles Colombia 2020
Devops Adoption Roadmap v 2.7 Agiles Colombia 2020Devops Adoption Roadmap v 2.7 Agiles Colombia 2020
Devops Adoption Roadmap v 2.7 Agiles Colombia 2020
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Microservices in Practice
Microservices in PracticeMicroservices in Practice
Microservices in Practice
 
Docker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and ContainersDocker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and Containers
 
Introduction to DevOps | Edureka
Introduction to DevOps | EdurekaIntroduction to DevOps | Edureka
Introduction to DevOps | Edureka
 
Microservices Design Patterns | Edureka
Microservices Design Patterns | EdurekaMicroservices Design Patterns | Edureka
Microservices Design Patterns | Edureka
 
Getting started with Docker
Getting started with DockerGetting started with Docker
Getting started with Docker
 
Platform engineering
Platform engineeringPlatform engineering
Platform engineering
 
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
¿Qué es DevOps y por qué es importante en el Ciclo de Software? por michelada.io
¿Qué es DevOps y por qué es importante en el Ciclo de Software? por michelada.io¿Qué es DevOps y por qué es importante en el Ciclo de Software? por michelada.io
¿Qué es DevOps y por qué es importante en el Ciclo de Software? por michelada.io
 
Docker basics
Docker basicsDocker basics
Docker basics
 
Microservices Design Patterns Explained | Edureka
Microservices Design Patterns Explained | EdurekaMicroservices Design Patterns Explained | Edureka
Microservices Design Patterns Explained | Edureka
 
Platform engineering 101
Platform engineering 101Platform engineering 101
Platform engineering 101
 

Similar a Domain driven desing

Introducción a DDD
Introducción a DDDIntroducción a DDD
Introducción a DDDsergiopolo
 
Meetup: Sesión #8 Domain Driven Design
Meetup: Sesión #8 Domain Driven DesignMeetup: Sesión #8 Domain Driven Design
Meetup: Sesión #8 Domain Driven DesignOsvaldo Mercado Coss
 
Meetup bdd & tdd: aprovecha_su_poder
Meetup bdd & tdd: aprovecha_su_poderMeetup bdd & tdd: aprovecha_su_poder
Meetup bdd & tdd: aprovecha_su_poderEduardo Riol
 
Introducción a la Nube Nativa - v1.0es (2021/03)
Introducción a la Nube Nativa - v1.0es (2021/03)Introducción a la Nube Nativa - v1.0es (2021/03)
Introducción a la Nube Nativa - v1.0es (2021/03)Young Suk Ahn Park
 
Cas2010 behavior-driven-development-aplicado-en-acceptance-test-automation
Cas2010 behavior-driven-development-aplicado-en-acceptance-test-automationCas2010 behavior-driven-development-aplicado-en-acceptance-test-automation
Cas2010 behavior-driven-development-aplicado-en-acceptance-test-automationAgile Spain
 
Cloud & DevOps: encontrando seguridad y soporte en la nube.
Cloud & DevOps: encontrando seguridad y soporte en la nube.Cloud & DevOps: encontrando seguridad y soporte en la nube.
Cloud & DevOps: encontrando seguridad y soporte en la nube.Alejandro Varas H.
 
(Behavior driven development (bdd ) [sólo lectura])
(Behavior driven development  (bdd ) [sólo lectura])(Behavior driven development  (bdd ) [sólo lectura])
(Behavior driven development (bdd ) [sólo lectura])rakel_ita
 
Presentación del video: ¿Necesito un ERP? ¿Cuál? Introducción a los sistemas ...
Presentación del video: ¿Necesito un ERP? ¿Cuál? Introducción a los sistemas ...Presentación del video: ¿Necesito un ERP? ¿Cuál? Introducción a los sistemas ...
Presentación del video: ¿Necesito un ERP? ¿Cuál? Introducción a los sistemas ...Soluciones DTP, S.A.
 
Prestashop v1.6.1.4
Prestashop v1.6.1.4Prestashop v1.6.1.4
Prestashop v1.6.1.4rafa ruiz
 
Orientación a tendencias de Arquitectura DDD
Orientación a tendencias de Arquitectura DDDOrientación a tendencias de Arquitectura DDD
Orientación a tendencias de Arquitectura DDDCesar Gomez
 
Arquitectura de software y otros demonios
Arquitectura de software y otros demoniosArquitectura de software y otros demonios
Arquitectura de software y otros demoniosAndrés Londoño
 
éXito en la implantación de un sistema business intelligence
éXito en la implantación de un sistema business intelligenceéXito en la implantación de un sistema business intelligence
éXito en la implantación de un sistema business intelligenceDANIEL VENTURA
 
Documentación corporativa en la nube
Documentación corporativa en la nubeDocumentación corporativa en la nube
Documentación corporativa en la nubeAdam Datacenter
 
Taller diseño-web
Taller diseño-webTaller diseño-web
Taller diseño-webClara Lopez
 

Similar a Domain driven desing (20)

Introducción a DDD
Introducción a DDDIntroducción a DDD
Introducción a DDD
 
Meetup: Sesión #8 Domain Driven Design
Meetup: Sesión #8 Domain Driven DesignMeetup: Sesión #8 Domain Driven Design
Meetup: Sesión #8 Domain Driven Design
 
DDD
DDDDDD
DDD
 
Meetup bdd & tdd: aprovecha_su_poder
Meetup bdd & tdd: aprovecha_su_poderMeetup bdd & tdd: aprovecha_su_poder
Meetup bdd & tdd: aprovecha_su_poder
 
Introducción a la Nube Nativa - v1.0es (2021/03)
Introducción a la Nube Nativa - v1.0es (2021/03)Introducción a la Nube Nativa - v1.0es (2021/03)
Introducción a la Nube Nativa - v1.0es (2021/03)
 
Cas2010 behavior-driven-development-aplicado-en-acceptance-test-automation
Cas2010 behavior-driven-development-aplicado-en-acceptance-test-automationCas2010 behavior-driven-development-aplicado-en-acceptance-test-automation
Cas2010 behavior-driven-development-aplicado-en-acceptance-test-automation
 
Cloud & DevOps: encontrando seguridad y soporte en la nube.
Cloud & DevOps: encontrando seguridad y soporte en la nube.Cloud & DevOps: encontrando seguridad y soporte en la nube.
Cloud & DevOps: encontrando seguridad y soporte en la nube.
 
Domain driven design
Domain driven designDomain driven design
Domain driven design
 
(Behavior driven development (bdd ) [sólo lectura])
(Behavior driven development  (bdd ) [sólo lectura])(Behavior driven development  (bdd ) [sólo lectura])
(Behavior driven development (bdd ) [sólo lectura])
 
Presentación del video: ¿Necesito un ERP? ¿Cuál? Introducción a los sistemas ...
Presentación del video: ¿Necesito un ERP? ¿Cuál? Introducción a los sistemas ...Presentación del video: ¿Necesito un ERP? ¿Cuál? Introducción a los sistemas ...
Presentación del video: ¿Necesito un ERP? ¿Cuál? Introducción a los sistemas ...
 
Prestashop v1.6.1.4
Prestashop v1.6.1.4Prestashop v1.6.1.4
Prestashop v1.6.1.4
 
Orientación a tendencias de Arquitectura DDD
Orientación a tendencias de Arquitectura DDDOrientación a tendencias de Arquitectura DDD
Orientación a tendencias de Arquitectura DDD
 
Introducción a DDD
Introducción a DDDIntroducción a DDD
Introducción a DDD
 
ADMINISTRACION DE BASE DE DATOS UNIDAD 1
ADMINISTRACION DE BASE DE DATOS UNIDAD 1ADMINISTRACION DE BASE DE DATOS UNIDAD 1
ADMINISTRACION DE BASE DE DATOS UNIDAD 1
 
Arquitectura de software y otros demonios
Arquitectura de software y otros demoniosArquitectura de software y otros demonios
Arquitectura de software y otros demonios
 
éXito en la implantación de un sistema business intelligence
éXito en la implantación de un sistema business intelligenceéXito en la implantación de un sistema business intelligence
éXito en la implantación de un sistema business intelligence
 
Documentación corporativa en la nube
Documentación corporativa en la nubeDocumentación corporativa en la nube
Documentación corporativa en la nube
 
Cursos share point-biztalk
Cursos share point-biztalkCursos share point-biztalk
Cursos share point-biztalk
 
Cursos share point-biztalk
Cursos share point-biztalkCursos share point-biztalk
Cursos share point-biztalk
 
Taller diseño-web
Taller diseño-webTaller diseño-web
Taller diseño-web
 

Domain driven desing

  • 2. En un enfoque tradicional de diseño… DOMAIN DRIVEN DESING Presumimos que los casos de uso son suficientes para que… …los ingenieros de software construyan un sistema.
  • 3. En un enfoque tradicional de diseño… DOMAIN DRIVEN DESING Presumimos que los casos de uso son suficientes para que… …los ingenieros de software construyan un sistema.
  • 4. DOMAIN DRIVEN DESING PERO NO SON SUFICIENTES
  • 5. ¿De que se trata DDD? DOMAIN DRIVEN DESING Es un enfoque de desarrollo de software para necesidades complejas enfocado en conectar profundamente la implementación con un modelo de negocios en constante evolución partiendo de la base del trabajo en equipo, la comunicación y colaboración constante entre expertos técnicos (Ingenieros de Software) y expertos del dominio (Usuarios) en contextos acotados de negocio utilizando para ello un lenguaje ubicuo “El software puede fallar por dos motivos: creamos las cosas mal o creamos las cosas incorrectas”
  • 6. Para implementar DDD: DOMAIN DRIVEN DESING • Lo primordial es mantener contacto constante y permanente con el experto del negocio utilizando un lenguaje ubicuo • Mapea los dominios y sepáralos en subdominios • Mira el panorama general del Proceso de Negocio As Is, aprendiendo sobre el dominio del problema • Crea contextos acotados (Bounded Contexts) entre subdominios • Idealmente, debe haber un equipo, una base de código y una base de datos diferentes para cada uno de los Bounded Contexts • Dado que todos estarían trabajando dentro de su propio Bounded Context, serían libres de cambiar cualquier cosa dentro de este (siempre trabajando con los Expertos del Dominio y utilizando Lenguaje Ubicuo) • Para todos los asuntos transversales que se comparten entre diferentes Bounded Contexts (lo llamamos Shared Kernel), cualquier cambio debe ser conocido y acordado entre todos los equipos en cada Bounded Context afectado (nuevamente, teniendo en cuenta que los equipos son conformados entre los expertos técnicos de sistemas y los expertos del domino del negocio) • Mantente siempre enfocado en los comportamientos del dominio en lugar del estado del dominio (favorece un modelo rico sobre un modelo anémico)
  • 7. ¿Y qué no debemos hacer al implementar DDD? DOMAIN DRIVEN DESING 1. Tener una vista centrada en los datos al modelar el dominio del problema. Por lo general, el modelo de datos es lo primero que un arquitecto o ingeniero de software comenzará a diseñar. Siempre consideran que los datos son lo más importante porque los datos son todo lo que necesitamos informar. Con DDD, debemos cambiar este paradigma. Los datos en sí mismos no tienen sentido. Sólo la lógica da a los datos un significado, y los mismos datos pueden tener un significado diferente en contextos diferentes. Por lo tanto, debemos comenzar con contexto y lógica en lugar de datos
  • 8. ¿Y qué no debemos hacer al implementar DDD? DOMAIN DRIVEN DESING 2. Centrarse en los detalles de la implementación como entidades, objetos de valor, servicios, fábricas y repositorios en lugar de los conceptos básicos del negocio. Las entidades, los objetos de valor, los repositorios, etc., no tienen un significado hasta que definimos el lenguaje ubicuo, los contextos delimitados y las interfaces. Si comenzamos pronto con los detalles de implementación como las entidades, entonces es muy probable que el resultado sea un dominio anémico rodeado de una gran cantidad de servicios y lógica empresarial dispersos por todas partes, que generan a su vez DEUDA TÉCNICA.
  • 9. ¿Y qué no debemos hacer al implementar DDD? DOMAIN DRIVEN DESING 3. Usar términos y conceptos genéricos o técnicos de desarrollo al implementar la aplicación. Nunca debemos usar conceptos como save, update, delete, handle, manage, etc. Esos conceptos son conceptos técnicos/abstractos y sin un significado específico para el usuario. En cambio, debemos mantenernos enfocados en los conceptos de negocio. Los conceptos mencionados anteriormente (es decir, save, update, etc.) no están relacionados con los conceptos de negocios.
  • 10. ¿Y qué no debemos hacer al implementar DDD? DOMAIN DRIVEN DESING 4. Sobreestimar las transacciones de bases de datos en lugar de centrarse en los procesos y transacciones comerciales. En DDD, las transacciones comerciales son más importantes que las transacciones de Bases de Datos. Las transacciones de Bases de Datos son ACID, muy consistentes y de corta ejecución, mientras que las transacciones comerciales no lo son. De hecho, en la vida real solo conocemos las transacciones comerciales. Nunca pensemos en transacciones DB. En su lugar, siempre pensemos en los procesos del mundo real, en las acciones (comportamientos) y sus posibles resultados, y cómo compensar las acciones si se producen fallas.
  • 11. ¿Y qué no debemos hacer al implementar DDD? DOMAIN DRIVEN DESING 1. Tener una vista centrada en los datos al modelar el dominio del problema. 2. Centrarse en los detalles de la implementación como entidades, objetos de valor, servicios, fábricas y repositorios en lugar de los conceptos básicos del negocio. 3. Usar términos y conceptos genéricos o técnicos de desarrollo al implementar la aplicación. 4. Sobreestimar las transacciones de bases de datos en lugar de centrarse en los procesos y transacciones comerciales.
  • 13. ¿Lenguaje Ubicuo, eso con que se come? DOMAIN DRIVEN DESING
  • 14. ¿Y el contexto acotado? DOMAIN DRIVEN DESING CONTEXTO DE LA VENTA CONTEXTO DEL SOPORTE
  • 15. Modelado Conceptual Estratégico en DDD DOMAIN DRIVEN DESING
  • 17. Modelado Conceptual Táctico en DDD DOMAIN DRIVEN DESING
  • 18. Diseño Estratégico DOMAIN DRIVEN DESING Diseño Táctico • AGREGADOS • ENTIDADES • OBJETOS DE VALOR • SERVICIOS Y EVENTOS DEL DOMINIO • REPOSITORIOS • FACTORIAS • ARQUITECTURA
  • 19. El Meta Modelo Conceptual DOMAIN DRIVEN DESING
  • 21. Arquitectura en Capas y Microservicios DOMAIN DRIVEN DESING Presentation Layer API Layer Domain Layer Infraestructure Layer