SlideShare uma empresa Scribd logo
Ddd – Domain driven design
Domain-Driven DesignDomain-DrivenDesign não é uma tecnologia ou metodologia, mas sim uma abordagem de design de software disciplinada que reúne um conjunto de conceitos, técnicas e princípios com foco no domínio e na lógica do domínio para criar um domainmodel.
Domain-Driven Design	O modelopode ser expresso de váriasformas, comoumaapresentaçãoem PowerPoint, diagramasem UML, rascunho de papel, peças de Lego, o mesmo o códigodaaplicação.
Padrões	É umaregra de trêspartesqueexpressa a relação entre um contexto1, um problema² e umasolução³.
O que é DDD?Livro de Eric Evans (2004)PadrõesBoas práticasExperiência
Foco: DomínioAlinhamento com negócioIsolamento entre domíniosReutilizaçãoMínimoacoplamentoIndependente de tecnologia
DDDA voltadaOrientação a Objetos?
Padrões no DDD[Contexto][Discussão do problema]Resumo do problemaDiscussãodasoluçãoPorestarazãoResumodasoluçãoConsequências, implementação, exemplos.[Contextoresultante]
DDD
Colocando o modelo de domínioparafuncionarLinguagemUbíqua
Model Driven DesignDomínioGuiaModeloDesignRefatoraçãoDesenvolvedoresperdidos e tecnologiainadequadaSofwarenão serve para o domínioAperfeiçoa
Blocos de Construção doModelDrivenDesign
ArquiteturaemCamadas
Entidades
Objetos de ValoresPraquemnãoprecisa de identidade;Imutáveis;Descrevemcoisas;Ciclo de vidarápido;Exemplos: strings, números, cores.
AgregadosEntidadeAgregadoEntidadeObjeto de ValorObjeto de Valor
FábricasQuandoconstruir (Agregados) for complexo;Devem ser sempreabstratas;Nãofazem parte do modelo, mas do domínio.
ServiçosA operaçaonãofaz parte de nenhumaEntidadeouObjeto de Valor;Interface fala a língua do Domínio;Semestado.
MódulosAgrupeconceitos do modelo, nãocódigo;Baixoacoplamento / altacoesão;NomesdaLinguagemUbíqua.
MódulosModelo = HistóriaMódulo = CapítuloMódulo = CapítuloMódulo = CapítuloMódulo = CapítuloMódulo = CapítuloMódulo = Capítulo
RepositóriosCódigoClienteRepositórioBuscaEntidadeEntidadesCriaAgregadosAgregadosEntidadesAgregadosRemoverEntidades
LinguagemUbíquaModel Driven DesignExpressamodelocomoMódulosServiçosEntidadesObjetosValorAcessa comEncapsula comMantémIntegridade comEncapsula comRepositóriosAgregadosFábricasAcessa comEncapsula com
Refatorandoparacompreenderprofundamente o modelo
Padrõespararefinar o modeloInterfaces de intençãoreveladaEufaçoexatamenteisso. Nãoprecisa se preocuparcomo.
Padrõespararefinar o modeloFunçõessemefeitoscolateraisColocartudo o que for possívelemfunções, principalmenteemcálculoscomplexosOndenãoder, usarcomandosquefazempoucasoperações e nãoretornamobjetos do domínio
Padrõespararefinar o modeloAsserçõesTestes de unidade;Usarfacilidadesdalinguagem;Testam o comportamento dos comandos.
LinguagemUbíquaModel Driven DesigndesenhadasusandoExpressamodeloatravés deInterfaces de IntençãoReveladaTorna efeitoscolateraisexplícitos comAsserçõescria segurase simplesFunçõessemEfeitosColateraisTornacomposiçãosegura
ProjetoEstratégico
ProjetoEstratégico - PadrõesContextoDelimitado	As célulasexistemporquesuamembrana define o queestádentrooufora e determina o quepodeentrar.
ProjetoEstratégico - PadrõesIntegraçãocontínuaFazerfigurapróximo slide
IntegraçãoContínuaNovo Elemento do ModeloCodificaçãoTestes automatizados;Processo de build automático;Sincronizaçãodiária;Relatórios.
ProjetoEstratégico - PadrõesMapa do Contexto
ProjetoEstratégico - PadrõesNúcleoCompartilhadoÉ maisdifícilfazermudanças;Evita (masnãoelimina) duplicações.
ProjetoEstratégico - PadrõesProdutor – ConsumidorTestes automatizadosCliente - Fornecedor
ProjetoEstratégico - PadrõesConformistaTime fornecedornãointeresseemajudar;Tiracomplexidade de tradução entre contextos;Mesmalinguagemubíqua;Parecido  com NúcleoCompartilhado , masclientenão tem poder de modificação.
ProjetoEstratégico - PadrõesCamada Anti-Corrupção
ProjetoEstratégico - PadrõesCaminhosseparadosQuandointegrarcustacaro e o benefício é pequeno;Contextodelimitadoquenão tem nenhumaconexão com osoutros.
ResumindoTrabalhando com um modelo;Blocos de construção;Refatorando e evoluindo;Refinando, destilando.
Refinando um modelo
IssoNão é Tudo
DDDOs padrõescitadossãoapenasalguns dos descritosem Domain Driven Design. DDD é uma forma de desenvolver software que, porestarligado a boas práticas de Orientação a Objetos, tem muito a ver com desenvolvimentoágil. A própriaidéia de Padrões, quepromoveeficácianacomunicação, é um dos valorespregadospelosagilistas. São técnicasquelevarãoaodesenvolvimento de serviços de qualidade, sistemasseguros e fáceis de darmanutenção, levando, consequentemente, à satisfação dos seusclientes com a rapidezque o mercado de hojeexige.
Vantagens de adotar o DDDQuantomaispróximovocêestá do negócio, menossofre com mudançasO entendimento do desenvolvedorsobre o negócio, evitandoerros e ajudando no negócioemsi, questionando e sugerindootimizações.Códigomenosacoplado e maiscoeso.
ConclusãoProcure utilizar DDD emaplicações com domínioscomplexosLinguagemUbíqua e MDD são o cerneda DDDNão se apegue à rigidezconceitual, e claro, não lute contra os frameworks.
ReferênciasEvans, Eric. Domain Driven Design. Addison – Wesley, 2004.http://www.infoq.com/resource/minibooks/domain-driven-design-quickly/en/pdf/DomainDrivenDesignQuicklyOnline.pdfhttp://vimeo.com/3545313

Mais conteúdo relacionado

PPTX
Azure Boards.pptx
PPTX
Migrating Data and Databases to Azure
PDF
Change Data Feed in Delta
PDF
Graph Databases - RedisGraph and RedisInsight
PDF
Fuzzy Matching on Apache Spark with Jennifer Shin
PDF
Slash n: Tech Talk Track 2 – Distributed Transactions in SOA - Yogi Kulkarni,...
PDF
Data Migration Done Right for Microsoft Dynamics 365/CRM
PDF
Oracle on Azure IaaS 2023 Update
Azure Boards.pptx
Migrating Data and Databases to Azure
Change Data Feed in Delta
Graph Databases - RedisGraph and RedisInsight
Fuzzy Matching on Apache Spark with Jennifer Shin
Slash n: Tech Talk Track 2 – Distributed Transactions in SOA - Yogi Kulkarni,...
Data Migration Done Right for Microsoft Dynamics 365/CRM
Oracle on Azure IaaS 2023 Update

Mais procurados (20)

PPTX
At the core you will have KUSTO
PDF
ApacheCon Europe Big Data 2016 – Parquet in practice & detail
PPTX
PostgreSQL and CockroachDB SQL
PPTX
Introduction to DevOps
PDF
RWDG Slides: Building a Data Governance Roadmap
PPTX
Implement SQL Server on an Azure VM
PPTX
0 to 60 With Outsystems
PDF
Preparing for EBS R12.2-upgrade-full
PDF
White Paper - Overview Architecture For Enterprise Data Warehouses
PPTX
Designing Microservices
PPTX
Introdução ao Domain-Driven Design
PPTX
Azure data platform overview
PPTX
Keeping Spark on Track: Productionizing Spark for ETL
PDF
Kafka Connect and Streams (Concepts, Architecture, Features)
DOCX
Oracle A.I.M. Methodology Documentation
PPTX
Databricks Platform.pptx
PPTX
Spark sql meetup
PDF
Apresentação | Gestão de QA | Modelo Human driven | Qualidade de software | ...
PPTX
High Availability for Oracle SE2
PPTX
Basics of MongoDB
At the core you will have KUSTO
ApacheCon Europe Big Data 2016 – Parquet in practice & detail
PostgreSQL and CockroachDB SQL
Introduction to DevOps
RWDG Slides: Building a Data Governance Roadmap
Implement SQL Server on an Azure VM
0 to 60 With Outsystems
Preparing for EBS R12.2-upgrade-full
White Paper - Overview Architecture For Enterprise Data Warehouses
Designing Microservices
Introdução ao Domain-Driven Design
Azure data platform overview
Keeping Spark on Track: Productionizing Spark for ETL
Kafka Connect and Streams (Concepts, Architecture, Features)
Oracle A.I.M. Methodology Documentation
Databricks Platform.pptx
Spark sql meetup
Apresentação | Gestão de QA | Modelo Human driven | Qualidade de software | ...
High Availability for Oracle SE2
Basics of MongoDB
Anúncio

Destaque (20)

PDF
DDD - Domain Driven Design
PPTX
Bolovo - problema antigo de arquitetura de software - não use por aí
PDF
Entendendo Domain-Driven Design
PPT
UI Patterns
PPS
Automação de testes para equipes agile
PDF
Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado
PDF
Design thinking E-info
PDF
Palestra - Tema: Empreendedorismo na Gestão de Empresas de Serviços.
PDF
Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...
PDF
Treinamento DDD .Net
PDF
Domain Driven Design - Aplicando estrategias e padrões
PDF
Domain-Driven-Design
PDF
Story and Emergent Design
PDF
REST - Padroes e Melhores Praticas
PPT
DDD > Experiências
PPT
Web Services Rest
PPTX
DDD – Domain Driven Design
PDF
Emergent design - PHP Jo'burg 2015
PPTX
Programando com prazer com DDD
PDF
Workshop DDD
DDD - Domain Driven Design
Bolovo - problema antigo de arquitetura de software - não use por aí
Entendendo Domain-Driven Design
UI Patterns
Automação de testes para equipes agile
Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado
Design thinking E-info
Palestra - Tema: Empreendedorismo na Gestão de Empresas de Serviços.
Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...
Treinamento DDD .Net
Domain Driven Design - Aplicando estrategias e padrões
Domain-Driven-Design
Story and Emergent Design
REST - Padroes e Melhores Praticas
DDD > Experiências
Web Services Rest
DDD – Domain Driven Design
Emergent design - PHP Jo'burg 2015
Programando com prazer com DDD
Workshop DDD
Anúncio

Semelhante a DDD - Domain Driven Design (20)

PPTX
Domain Driven Design
PPTX
Uma introdução ao Domain Driven Design
PDF
DDD – Domain Driven Design
PPTX
Domain driven design - Visão Geral
PPT
Domain-Driven Design - Uma Abordagem Introdutória
PPTX
Domain Driven Design : Pensando Fora da Caixa
PDF
PDF
Domain-Driven-Design
PDF
DDD - Domain Driven Design
PDF
DDD in PHP
PDF
Domain Driven Design – DDD além da teoria!, por Paulo Victor Gomes
PPTX
DDD - Step by Step
PPTX
Aula 8 - DDD - Domain Driven Design.pptx
PDF
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
PPTX
Introdução a Domain-Driven Design
PDF
Introdução Domain-Driven-Design
PPTX
Domain-Driven Design - Aplicada a um estudo de caso
PPTX
Domain driven-design
PDF
Domain Driven Design: como modelar uma aplicação em Node.js com DDD
PDF
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Domain Driven Design
Uma introdução ao Domain Driven Design
DDD – Domain Driven Design
Domain driven design - Visão Geral
Domain-Driven Design - Uma Abordagem Introdutória
Domain Driven Design : Pensando Fora da Caixa
Domain-Driven-Design
DDD - Domain Driven Design
DDD in PHP
Domain Driven Design – DDD além da teoria!, por Paulo Victor Gomes
DDD - Step by Step
Aula 8 - DDD - Domain Driven Design.pptx
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
Introdução a Domain-Driven Design
Introdução Domain-Driven-Design
Domain-Driven Design - Aplicada a um estudo de caso
Domain driven-design
Domain Driven Design: como modelar uma aplicação em Node.js com DDD
Use MDD e faça as máquinas trabalharem para você - Andreza Leite

Mais de Engenharia de Software Ágil (20)

PPTX
Sap – stablility and abstract principle
PPTX
Sap – stablility and abstract principle
PDF
Sap – stablility and abstract principle
PDF
Common closure principle
PPTX
Common closure principle
PDF
Acyclic dependencies principle
PPTX
Acyclic dependencies principle (adp)
PDF
Reuse release equivalence principle
PDF
Rep reuse release equivalence principle
PDF
OCP - The Open Close Principle - Princípio aberto/fechado
PDF
Sdp – stable dependencies principles
PDF
principio de reutilização comum
PPTX
Princípio law of demeter
PDF
Lod law of demeter
PDF
Dip the dependency inversion principle
PPTX
Dip the dependency inversion principle
PPTX
Dip the dependency inversion principle
PDF
(ISP) - Interface Segregation Principle
PDF
LSP – The Liskov Substitution Principle
PDF
SRP - Single Responsability Principle
Sap – stablility and abstract principle
Sap – stablility and abstract principle
Sap – stablility and abstract principle
Common closure principle
Common closure principle
Acyclic dependencies principle
Acyclic dependencies principle (adp)
Reuse release equivalence principle
Rep reuse release equivalence principle
OCP - The Open Close Principle - Princípio aberto/fechado
Sdp – stable dependencies principles
principio de reutilização comum
Princípio law of demeter
Lod law of demeter
Dip the dependency inversion principle
Dip the dependency inversion principle
Dip the dependency inversion principle
(ISP) - Interface Segregation Principle
LSP – The Liskov Substitution Principle
SRP - Single Responsability Principle

Último (20)

PDF
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
PDF
embriologia_animal_aula_share_2026_semestre
PDF
A relação entre funções executivas e desempenho acadêmico em crianças com Tra...
PDF
Organizador Curricular da Educação em Tempo Integral.pdf
PPTX
Slide_Macronutrientes e Antinutrientes da Dieta Humana.pptx
PDF
Ebook - Matemática_Ensino_Médio_Saeb_V1.pdf
PPTX
A História da Europa na Baixa Idade Média.pptx
PPTX
Lição 8 EBD.pptxtudopossonaquelequemimfortalece
PPTX
biossegurança e segurança no trabalho (6).pptx
PDF
manual-orientacao-asb_5a8d6d8d87160aa636f63a5d0.pdf
PPTX
Aula 13 - Tópico Frasal - Argumentação.pptx
PPTX
Ciências da Natureza e suas áreas de desenvolvimento
PPTX
Pedagogia em Ambientes Não Escolares.pptx
PPTX
NR11 - Treinamento Direcao Defensiva - 2023.pptx
PPT
sistema reprodutor para turmas do oitavo ano
PPTX
Realismo e Naturalismo: Aluísio Azevedo.
PPTX
16. MODERNISMO - PRIMEIRA GERAÇÃO - EDIÇÃO 2021 (1).pptx
PPT
Imperio Bbrasileiro-1822-1889 - aspectos gerais
PDF
Cantores.pdf-Deslandes, Tinoco e Zambujo
PDF
aulademeiodetransporteemlibras-120304202807-phpapp01_removed.pdf
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
embriologia_animal_aula_share_2026_semestre
A relação entre funções executivas e desempenho acadêmico em crianças com Tra...
Organizador Curricular da Educação em Tempo Integral.pdf
Slide_Macronutrientes e Antinutrientes da Dieta Humana.pptx
Ebook - Matemática_Ensino_Médio_Saeb_V1.pdf
A História da Europa na Baixa Idade Média.pptx
Lição 8 EBD.pptxtudopossonaquelequemimfortalece
biossegurança e segurança no trabalho (6).pptx
manual-orientacao-asb_5a8d6d8d87160aa636f63a5d0.pdf
Aula 13 - Tópico Frasal - Argumentação.pptx
Ciências da Natureza e suas áreas de desenvolvimento
Pedagogia em Ambientes Não Escolares.pptx
NR11 - Treinamento Direcao Defensiva - 2023.pptx
sistema reprodutor para turmas do oitavo ano
Realismo e Naturalismo: Aluísio Azevedo.
16. MODERNISMO - PRIMEIRA GERAÇÃO - EDIÇÃO 2021 (1).pptx
Imperio Bbrasileiro-1822-1889 - aspectos gerais
Cantores.pdf-Deslandes, Tinoco e Zambujo
aulademeiodetransporteemlibras-120304202807-phpapp01_removed.pdf

DDD - Domain Driven Design