SlideShare a Scribd company logo
1 of 23
Mauro Sérgio da Costa Leal
Mauro Sérgio da Costa Leal 
• Bacharel em Ciência da Computação 
• Arquiteto de software 
• Desenvolvedor web na plataforma .NET 
• Entusiasta de DDD, padrões de projeto e boas 
práticas de programação
Agenda 
O que é DDD 
Arquitetura em camadas 
Camada de domínio 
Quando deve ser utilizado
O que é domínio?
Múltiplos dialetos
Confrontos 
Modelo orientado a objetos x Modelo anêmico 
Refatoração x Contornos 
Separação de responsabilidades x Alto acoplamento 
Camada de Regras de Negócio x Interfaces inteligentes
Arquitetura em camadas
Domínio – Entidades e Objetos de 
Valor 
Conta Saque 
Cédula
Domínio - Agregados 
Pedido Cliente 
Itens Produto
Domínio - Fábricas
Domínio - Serviços
Mapa de Navegação
Quando não utilizar DDD 
Aplicações CRUD 
Aplicações com poucos 
casos de uso 
Aplicações com ciclo de 
vida pequeno
Quando utilizar DDD 
Aplicações com muitas regras de 
negócio 
Não conseguimos prever a 
complexidade 
Longo ciclo de vida 
Domínio desconhecido por todo o 
time
Por que utilizar DDD? 
Consenso entre os especialistas do 
domínio 
Melhor experiência do usuário 
Modelagem ágil, iterativa e 
contínua 
Software para todos entenderem
Referências
Referências
Referências
Mauro Sérgio da Costa Leal 
mauroscl@gmail.com

More Related Content

What's hot

DDD - Domain Driven Design
DDD - Domain Driven DesignDDD - Domain Driven Design
DDD - Domain Driven DesignDaniel Cukier
 
Domain Driven Design – DDD além da teoria!, por Paulo Victor Gomes
Domain Driven Design – DDD além da teoria!, por Paulo Victor GomesDomain Driven Design – DDD além da teoria!, por Paulo Victor Gomes
Domain Driven Design – DDD além da teoria!, por Paulo Victor GomesiMasters
 
Atacando as complexidades no coração do software
Atacando as complexidades no coração do softwareAtacando as complexidades no coração do software
Atacando as complexidades no coração do softwareYan Justino
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza LeiteiMasters
 
Padroes de projetos gof
Padroes de projetos gofPadroes de projetos gof
Padroes de projetos gofYan Justino
 
Como DDD e principalmente Domain Model contribuem na construção de microservi...
Como DDD e principalmente Domain Model contribuem na construção de microservi...Como DDD e principalmente Domain Model contribuem na construção de microservi...
Como DDD e principalmente Domain Model contribuem na construção de microservi...Isaac de Souza
 
Reflexões sobre arquitetura de software
Reflexões sobre arquitetura de softwareReflexões sobre arquitetura de software
Reflexões sobre arquitetura de softwareTiago Sciencia
 
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TIDNAD
 

What's hot (9)

DDD - Domain Driven Design
DDD - Domain Driven DesignDDD - Domain Driven Design
DDD - Domain Driven Design
 
Domain Driven Design – DDD além da teoria!, por Paulo Victor Gomes
Domain Driven Design – DDD além da teoria!, por Paulo Victor GomesDomain Driven Design – DDD além da teoria!, por Paulo Victor Gomes
Domain Driven Design – DDD além da teoria!, por Paulo Victor Gomes
 
Atacando as complexidades no coração do software
Atacando as complexidades no coração do softwareAtacando as complexidades no coração do software
Atacando as complexidades no coração do software
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 
Padroes de projetos gof
Padroes de projetos gofPadroes de projetos gof
Padroes de projetos gof
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Como DDD e principalmente Domain Model contribuem na construção de microservi...
Como DDD e principalmente Domain Model contribuem na construção de microservi...Como DDD e principalmente Domain Model contribuem na construção de microservi...
Como DDD e principalmente Domain Model contribuem na construção de microservi...
 
Reflexões sobre arquitetura de software
Reflexões sobre arquitetura de softwareReflexões sobre arquitetura de software
Reflexões sobre arquitetura de software
 
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
 

Viewers also liked

DDD / Microservices @ Trivento Spring Camp, Utrecht, 2015
DDD / Microservices @ Trivento Spring Camp, Utrecht, 2015DDD / Microservices @ Trivento Spring Camp, Utrecht, 2015
DDD / Microservices @ Trivento Spring Camp, Utrecht, 2015Dennis Traub
 
[DDD] Microservice scars
[DDD] Microservice scars[DDD] Microservice scars
[DDD] Microservice scarsJoshua Toth
 
Taming the Monolith
Taming the MonolithTaming the Monolith
Taming the MonolithDennis Traub
 
API:World 2016 - Applying Domain Driven Design to APIs and Microservices
API:World 2016 - Applying Domain Driven Design to APIs and MicroservicesAPI:World 2016 - Applying Domain Driven Design to APIs and Microservices
API:World 2016 - Applying Domain Driven Design to APIs and MicroservicesLaunchAny
 
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecerInterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouqueceriMasters
 
Design de software com ASP.NET MVC
Design de software com ASP.NET MVCDesign de software com ASP.NET MVC
Design de software com ASP.NET MVCWaldyr Felix
 
Domain-Driven-Design
 Domain-Driven-Design Domain-Driven-Design
Domain-Driven-DesignWende Mendes
 
Criandeiros - Grupo de estudos: MVC
Criandeiros - Grupo de estudos: MVCCriandeiros - Grupo de estudos: MVC
Criandeiros - Grupo de estudos: MVCBruno Bemfica
 
Domain-Driven Design - Uma Abordagem Introdutória
Domain-Driven Design - Uma Abordagem IntrodutóriaDomain-Driven Design - Uma Abordagem Introdutória
Domain-Driven Design - Uma Abordagem Introdutóriaarmeniocardoso
 
DDD – Domain Driven Design
DDD – Domain Driven DesignDDD – Domain Driven Design
DDD – Domain Driven DesignÍtalo Bandeira
 
Domain Driven Design (DDD) - DevIsland, BH
Domain Driven Design (DDD) - DevIsland, BHDomain Driven Design (DDD) - DevIsland, BH
Domain Driven Design (DDD) - DevIsland, BHGiovanni Bassi
 
Creating RESTful API’s with Grails and Spring Security
Creating RESTful API’s with Grails and Spring SecurityCreating RESTful API’s with Grails and Spring Security
Creating RESTful API’s with Grails and Spring SecurityAlvaro Sanchez-Mariscal
 
Symfony in microservice architecture
Symfony in microservice architectureSymfony in microservice architecture
Symfony in microservice architectureDaniele D'Angeli
 
Apresentação mvc
Apresentação mvcApresentação mvc
Apresentação mvcleopp
 
Cqrs, event sourcing and microservices
Cqrs, event sourcing and microservicesCqrs, event sourcing and microservices
Cqrs, event sourcing and microservicesMarcelo Cure
 

Viewers also liked (20)

DDD / Microservices @ Trivento Spring Camp, Utrecht, 2015
DDD / Microservices @ Trivento Spring Camp, Utrecht, 2015DDD / Microservices @ Trivento Spring Camp, Utrecht, 2015
DDD / Microservices @ Trivento Spring Camp, Utrecht, 2015
 
Workshop DDD
Workshop DDDWorkshop DDD
Workshop DDD
 
[DDD] Microservice scars
[DDD] Microservice scars[DDD] Microservice scars
[DDD] Microservice scars
 
Taming the Monolith
Taming the MonolithTaming the Monolith
Taming the Monolith
 
API:World 2016 - Applying Domain Driven Design to APIs and Microservices
API:World 2016 - Applying Domain Driven Design to APIs and MicroservicesAPI:World 2016 - Applying Domain Driven Design to APIs and Microservices
API:World 2016 - Applying Domain Driven Design to APIs and Microservices
 
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecerInterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
 
DDD Dirty Harry style
DDD Dirty Harry styleDDD Dirty Harry style
DDD Dirty Harry style
 
Design de software com ASP.NET MVC
Design de software com ASP.NET MVCDesign de software com ASP.NET MVC
Design de software com ASP.NET MVC
 
Domain-Driven-Design
 Domain-Driven-Design Domain-Driven-Design
Domain-Driven-Design
 
Criandeiros - Grupo de estudos: MVC
Criandeiros - Grupo de estudos: MVCCriandeiros - Grupo de estudos: MVC
Criandeiros - Grupo de estudos: MVC
 
Domain-Driven Design - Uma Abordagem Introdutória
Domain-Driven Design - Uma Abordagem IntrodutóriaDomain-Driven Design - Uma Abordagem Introdutória
Domain-Driven Design - Uma Abordagem Introdutória
 
DDD – Domain Driven Design
DDD – Domain Driven DesignDDD – Domain Driven Design
DDD – Domain Driven Design
 
Arquitetura de Sofware
Arquitetura de SofwareArquitetura de Sofware
Arquitetura de Sofware
 
Domain Driven Design (DDD) - DevIsland, BH
Domain Driven Design (DDD) - DevIsland, BHDomain Driven Design (DDD) - DevIsland, BH
Domain Driven Design (DDD) - DevIsland, BH
 
Creating RESTful API’s with Grails and Spring Security
Creating RESTful API’s with Grails and Spring SecurityCreating RESTful API’s with Grails and Spring Security
Creating RESTful API’s with Grails and Spring Security
 
Model storming
Model stormingModel storming
Model storming
 
Symfony in microservice architecture
Symfony in microservice architectureSymfony in microservice architecture
Symfony in microservice architecture
 
Arquitetura MVC
Arquitetura MVCArquitetura MVC
Arquitetura MVC
 
Apresentação mvc
Apresentação mvcApresentação mvc
Apresentação mvc
 
Cqrs, event sourcing and microservices
Cqrs, event sourcing and microservicesCqrs, event sourcing and microservices
Cqrs, event sourcing and microservices
 

Similar to Domain Driven Design (DDD)

Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...Isaac de Souza
 
Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013André Borgonovo
 
Utilizando a nuvem para proteger o mercado financeiro com segurança, agilidad...
Utilizando a nuvem para proteger o mercado financeiro com segurança, agilidad...Utilizando a nuvem para proteger o mercado financeiro com segurança, agilidad...
Utilizando a nuvem para proteger o mercado financeiro com segurança, agilidad...Amazon Web Services LATAM
 
REST - Padroes e Melhores Praticas
REST - Padroes e Melhores PraticasREST - Padroes e Melhores Praticas
REST - Padroes e Melhores PraticasFelipe Firmo
 
REST - padrões e melhores práticas
REST - padrões e melhores práticasREST - padrões e melhores práticas
REST - padrões e melhores práticasSensedia
 
REST: Padrões e Melhores Práticas
REST: Padrões e Melhores PráticasREST: Padrões e Melhores Práticas
REST: Padrões e Melhores PráticasAlessandro Oliveira
 
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021Renato Groffe
 
tdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdftdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdfDouglas Siviotti
 
cms_files_81187_1648754282Material_Doutorado_Profissional_em_Engenharia_de_So...
cms_files_81187_1648754282Material_Doutorado_Profissional_em_Engenharia_de_So...cms_files_81187_1648754282Material_Doutorado_Profissional_em_Engenharia_de_So...
cms_files_81187_1648754282Material_Doutorado_Profissional_em_Engenharia_de_So...Ricardo Roberto MSc, MBA
 
Big Data Analytics - Data Engineer, Arquitetura, AWS e Mais
Big Data Analytics - Data Engineer, Arquitetura, AWS e MaisBig Data Analytics - Data Engineer, Arquitetura, AWS e Mais
Big Data Analytics - Data Engineer, Arquitetura, AWS e MaisCicero Joasyo Mateus de Moura
 
Day 0 iniciando na carreira em ti
Day 0   iniciando na carreira em tiDay 0   iniciando na carreira em ti
Day 0 iniciando na carreira em tiLuis Henrique Costa
 
Software as a Service
Software as a ServiceSoftware as a Service
Software as a ServiceDenis Vieira
 
Construindo aplicativos SharePoint 2013 com AngularJS
Construindo aplicativos SharePoint 2013 com AngularJSConstruindo aplicativos SharePoint 2013 com AngularJS
Construindo aplicativos SharePoint 2013 com AngularJSWilliam S. Rodriguez
 
Lista de desejos de um Chief Security Officer
Lista de desejos de um Chief Security OfficerLista de desejos de um Chief Security Officer
Lista de desejos de um Chief Security OfficerAmazon Web Services LATAM
 
Php Conf08 Enterprise Patterns
Php Conf08 Enterprise PatternsPhp Conf08 Enterprise Patterns
Php Conf08 Enterprise PatternsWildtech
 
Tornando se um DevOps sem perder a cabeça #SE7I2016
Tornando se um DevOps sem perder a cabeça #SE7I2016Tornando se um DevOps sem perder a cabeça #SE7I2016
Tornando se um DevOps sem perder a cabeça #SE7I2016Camilla Gomes
 

Similar to Domain Driven Design (DDD) (20)

Azure
AzureAzure
Azure
 
Computação em nuvem e Windows Azure
Computação em nuvem e Windows AzureComputação em nuvem e Windows Azure
Computação em nuvem e Windows Azure
 
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
 
Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013
 
Utilizando a nuvem para proteger o mercado financeiro com segurança, agilidad...
Utilizando a nuvem para proteger o mercado financeiro com segurança, agilidad...Utilizando a nuvem para proteger o mercado financeiro com segurança, agilidad...
Utilizando a nuvem para proteger o mercado financeiro com segurança, agilidad...
 
REST - Padroes e Melhores Praticas
REST - Padroes e Melhores PraticasREST - Padroes e Melhores Praticas
REST - Padroes e Melhores Praticas
 
REST - padrões e melhores práticas
REST - padrões e melhores práticasREST - padrões e melhores práticas
REST - padrões e melhores práticas
 
DDD
DDDDDD
DDD
 
REST: Padrões e Melhores Práticas
REST: Padrões e Melhores PráticasREST: Padrões e Melhores Práticas
REST: Padrões e Melhores Práticas
 
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
 
tdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdftdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdf
 
cms_files_81187_1648754282Material_Doutorado_Profissional_em_Engenharia_de_So...
cms_files_81187_1648754282Material_Doutorado_Profissional_em_Engenharia_de_So...cms_files_81187_1648754282Material_Doutorado_Profissional_em_Engenharia_de_So...
cms_files_81187_1648754282Material_Doutorado_Profissional_em_Engenharia_de_So...
 
Big Data Analytics - Data Engineer, Arquitetura, AWS e Mais
Big Data Analytics - Data Engineer, Arquitetura, AWS e MaisBig Data Analytics - Data Engineer, Arquitetura, AWS e Mais
Big Data Analytics - Data Engineer, Arquitetura, AWS e Mais
 
Ari_Neto_Cloud_CONACLOUD
Ari_Neto_Cloud_CONACLOUDAri_Neto_Cloud_CONACLOUD
Ari_Neto_Cloud_CONACLOUD
 
Day 0 iniciando na carreira em ti
Day 0   iniciando na carreira em tiDay 0   iniciando na carreira em ti
Day 0 iniciando na carreira em ti
 
Software as a Service
Software as a ServiceSoftware as a Service
Software as a Service
 
Construindo aplicativos SharePoint 2013 com AngularJS
Construindo aplicativos SharePoint 2013 com AngularJSConstruindo aplicativos SharePoint 2013 com AngularJS
Construindo aplicativos SharePoint 2013 com AngularJS
 
Lista de desejos de um Chief Security Officer
Lista de desejos de um Chief Security OfficerLista de desejos de um Chief Security Officer
Lista de desejos de um Chief Security Officer
 
Php Conf08 Enterprise Patterns
Php Conf08 Enterprise PatternsPhp Conf08 Enterprise Patterns
Php Conf08 Enterprise Patterns
 
Tornando se um DevOps sem perder a cabeça #SE7I2016
Tornando se um DevOps sem perder a cabeça #SE7I2016Tornando se um DevOps sem perder a cabeça #SE7I2016
Tornando se um DevOps sem perder a cabeça #SE7I2016
 

Domain Driven Design (DDD)