SlideShare uma empresa Scribd logo
Domain-Driven Design A Utilização das Práticas do DDD Aplicada a um Estudo de Caso. Danillo César de Oliveira Melo Fábio Brasil Fernandes de Araújo Jairo Barros Junior Orientador: MSc. Ricardo Rubens FACULDADE DE ALAGOAS - FAL
A utilização da linguagem ubíqua Construção do modelo de domínio Padrões de projeto Ciclo de vida de um objeto de domínio Estudo de caso Conclusão Apresentação
Falha na comunicação Domínios complexos Alto acoplamento Baixa coesão Problemática
Conjunto de práticas Ideal para domínios complexos Desenvolvimento centrado no domínio Linguagem onipresente Domain-Driven Design
Por onde começar?
Comunicação em torno do domínio Manutenção da linguagem Modelo do domínio expressado no software Linguagem ubíqua
Qual o Próximo passo?
Isolando o domínio Arquitetura em camadas Fonte: Imagemextraída e adaptada do livro, Domain-Driven Design: Tackling Complexity in the Heart of Software, Evans (2004, p. 68).
Com a arquitetura em camadas  não existe o alto acoplamento. Anti-padrão
Camada do domínio
Deve ser dividida em módulos
Criado a partir das conversas dos desenvolvedores com os especialistas de domínio. Representado diretamente no código. Modelo do Domínio
Possui identificação única Possui características próprias dentro do modelo. Responsabilidade e associações baseadas na sua identificação e não em seus atributos. Entidade
Somente transporta informações Não possui identificação única Imutável Possuem somente métodos de acesso Objeto de Valor
Coordenam os trabalhos dos objetos do domínio Aplicação Domínio Infra-estrutura Serviço
Ciclo de vida de um objeto Fonte: Imagemextraída e adaptada do livro, Domain-Driven Design: Tackling Complexity in the Heart of Software, Evans (2004, p. 123).
Início do ciclo de vida Criação de objetos complexos e agregações Encapsula complexidade Fábricas
Agregações
Repositório
Mapa de navegação Fonte: Imagemextraída e adaptada do livro, Domain-Driven Design: Tackling Complexity in the Heart of Software, Evans (2004, p. 65).
Requisitos do projeto Estrutura do projeto Camada do domínio Estudo de caso
  “O sistema deve ter reserva e hospedagem, de forma que os clientes possam realizar suas reservas por telefone ou via internet. Uma reserva não é uma hospedagem, pois na hora da hospedagem a reserva feita pode ser alterada, mas caso isso não ocorra ela se torna uma hospedagem. Cada quarto possui um único identificador, existem cinco tipos de quarto, são eles: simples, casal, duplo, triplo e família. O hotel possui um amplo restaurante, que pode ser utilizado por qualquer cliente, mas existe uma área do restaurante só para os hospedes, assim como também existe uma área só para os fumantes, que conseguimos identificar no seu cadastro.” Requisitos do projeto
Estrutura do projeto
Estrutura do projeto
Estrutura do projeto
Camadas do domínio
Camadas do domínio
Camadas do domínio
A Comunicação A linguagem onipresente Desenvolvimento centrado no domínio Conclusão
AVRAM, Abel; MARINESCU, Floyd. Domain-Driven Design Quickly.InfoQ. 2007;    DDD. Domain-Driven Design, disponível em http://domaindrivendesign.org/. Acessoem 3 de Julho de 2008;   EVANS, Eric. Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley. 2004;    FREEMAN, Elisabeth; FREEMAN, Eric; BATES, Bert; SIERRA, Kathy. Head First Design Patterns.O'REILLY. 2004;   METSKER, Steven John. Padrões de Projeto em Java.Bookman. 2004;    MCCARTHY, Tim. .NET Domain-Driven Design with C#: Problem - Design - Solution.Wrox. 2008;   NILSSON, Jimmy. Applying Domain-Driven Design and Patterns: With Examples in C# and .NET.Addison-Wesley. 2006;   SITEFANE, João Pedro Manaças. Desenvolvimento de software centrado no domínio. Lisboa. Dissertação de Mestrado. 2007; Referências
Obrigado.

Mais conteúdo relacionado

Mais procurados

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
Yan Justino
 
Bolovo - problema antigo de arquitetura de software - não use por aí
Bolovo - problema antigo de arquitetura de software - não use por aíBolovo - problema antigo de arquitetura de software - não use por aí
Bolovo - problema antigo de arquitetura de software - não use por aí
Priscila Mayumi
 
Uma introdução ao Domain Driven Design
Uma introdução ao Domain Driven DesignUma introdução ao Domain Driven Design
Uma introdução ao Domain Driven Design
Lambda3
 
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
iMasters
 
DDD – Domain Driven Design
DDD – Domain Driven DesignDDD – Domain Driven Design
DDD – Domain Driven Design
Jonatas Saraiva
 
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDOARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
Yan Justino
 
Padroes de projetos gof
Padroes de projetos gofPadroes de projetos gof
Padroes de projetos gof
Yan Justino
 
Bounded Context e CQRS na evolução de aplicações .NET legadas
Bounded Context e CQRS na evolução de aplicações .NET legadasBounded Context e CQRS na evolução de aplicações .NET legadas
Bounded Context e CQRS na evolução de aplicações .NET legadas
Yan Justino
 
Feira de Emprego 2015 - Universidade de Coimbra
Feira de Emprego 2015 - Universidade de Coimbra Feira de Emprego 2015 - Universidade de Coimbra
Feira de Emprego 2015 - Universidade de Coimbra
Dellent Consulting
 
Automatic programming
Automatic programmingAutomatic programming
Automatic programming
Rodrigo Pereira
 

Mais procurados (10)

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
 
Bolovo - problema antigo de arquitetura de software - não use por aí
Bolovo - problema antigo de arquitetura de software - não use por aíBolovo - problema antigo de arquitetura de software - não use por aí
Bolovo - problema antigo de arquitetura de software - não use por aí
 
Uma introdução ao Domain Driven Design
Uma introdução ao Domain Driven DesignUma introdução ao Domain Driven Design
Uma introdução ao 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
 
DDD – Domain Driven Design
DDD – Domain Driven DesignDDD – Domain Driven Design
DDD – Domain Driven Design
 
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDOARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
 
Padroes de projetos gof
Padroes de projetos gofPadroes de projetos gof
Padroes de projetos gof
 
Bounded Context e CQRS na evolução de aplicações .NET legadas
Bounded Context e CQRS na evolução de aplicações .NET legadasBounded Context e CQRS na evolução de aplicações .NET legadas
Bounded Context e CQRS na evolução de aplicações .NET legadas
 
Feira de Emprego 2015 - Universidade de Coimbra
Feira de Emprego 2015 - Universidade de Coimbra Feira de Emprego 2015 - Universidade de Coimbra
Feira de Emprego 2015 - Universidade de Coimbra
 
Automatic programming
Automatic programmingAutomatic programming
Automatic programming
 

Semelhante a Domain-Driven Design - Aplicada a um estudo de caso

Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
Rodrigo Branas
 
Construindo aplicativos SharePoint 2013 com AngularJS
Construindo aplicativos SharePoint 2013 com AngularJSConstruindo aplicativos SharePoint 2013 com AngularJS
Construindo aplicativos SharePoint 2013 com AngularJS
William S. Rodriguez
 
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
 
Webdesign Revisão 2019-01
Webdesign Revisão 2019-01Webdesign Revisão 2019-01
Webdesign Revisão 2019-01
Renato Melo
 
Revisão Webdesign
Revisão WebdesignRevisão Webdesign
Revisão Webdesign
Renato Melo
 
Qualificação MACC- Entities
Qualificação MACC- EntitiesQualificação MACC- Entities
Qualificação MACC- Entities
Marcius Brandão
 
Frameworks PHP @edgarsandi
Frameworks PHP @edgarsandiFrameworks PHP @edgarsandi
Frameworks PHP @edgarsandi
Edgar Rodrigues Sandi
 
Micro frontend de um jeito que você nunca viu
Micro frontend de um jeito que você nunca viuMicro frontend de um jeito que você nunca viu
Micro frontend de um jeito que você nunca viu
Wagner Souza
 
Webdesign revisãao 2018-02
Webdesign revisãao 2018-02Webdesign revisãao 2018-02
Webdesign revisãao 2018-02
Renato Melo
 
NITECH - EVENT STORM
NITECH - EVENT STORM NITECH - EVENT STORM
NITECH - EVENT STORM
NitechAcademy
 
NITECH - EVENT STORM revisado 25Set.pdf
NITECH - EVENT STORM revisado 25Set.pdfNITECH - EVENT STORM revisado 25Set.pdf
NITECH - EVENT STORM revisado 25Set.pdf
NitechAcademy
 
Framework usar ou não usar
Framework usar ou não usarFramework usar ou não usar
Framework usar ou não usar
COTIC-PROEG (UFPA)
 
DDD e PHP - TDC 2012
DDD e PHP - TDC 2012DDD e PHP - TDC 2012
DDD e PHP - TDC 2012
Luís Cobucci
 
Aprensentacao oo-trincheiras
Aprensentacao oo-trincheirasAprensentacao oo-trincheiras
Aprensentacao oo-trincheiras
Higor César
 
Apresentação web2py
Apresentação web2pyApresentação web2py
Apresentação web2py
Grupython Ufla
 
DDD
DDDDDD
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
Renato Groffe
 
Desafios de projeto para quem usa a plataforma Android
Desafios de projeto para quem usa a plataforma AndroidDesafios de projeto para quem usa a plataforma Android
Desafios de projeto para quem usa a plataforma Android
Natanael Fonseca
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
Daniel Everling
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011
Flávio Lisboa
 

Semelhante a Domain-Driven Design - Aplicada a um estudo de caso (20)

Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 
Construindo aplicativos SharePoint 2013 com AngularJS
Construindo aplicativos SharePoint 2013 com AngularJSConstruindo aplicativos SharePoint 2013 com AngularJS
Construindo aplicativos SharePoint 2013 com AngularJS
 
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...
 
Webdesign Revisão 2019-01
Webdesign Revisão 2019-01Webdesign Revisão 2019-01
Webdesign Revisão 2019-01
 
Revisão Webdesign
Revisão WebdesignRevisão Webdesign
Revisão Webdesign
 
Qualificação MACC- Entities
Qualificação MACC- EntitiesQualificação MACC- Entities
Qualificação MACC- Entities
 
Frameworks PHP @edgarsandi
Frameworks PHP @edgarsandiFrameworks PHP @edgarsandi
Frameworks PHP @edgarsandi
 
Micro frontend de um jeito que você nunca viu
Micro frontend de um jeito que você nunca viuMicro frontend de um jeito que você nunca viu
Micro frontend de um jeito que você nunca viu
 
Webdesign revisãao 2018-02
Webdesign revisãao 2018-02Webdesign revisãao 2018-02
Webdesign revisãao 2018-02
 
NITECH - EVENT STORM
NITECH - EVENT STORM NITECH - EVENT STORM
NITECH - EVENT STORM
 
NITECH - EVENT STORM revisado 25Set.pdf
NITECH - EVENT STORM revisado 25Set.pdfNITECH - EVENT STORM revisado 25Set.pdf
NITECH - EVENT STORM revisado 25Set.pdf
 
Framework usar ou não usar
Framework usar ou não usarFramework usar ou não usar
Framework usar ou não usar
 
DDD e PHP - TDC 2012
DDD e PHP - TDC 2012DDD e PHP - TDC 2012
DDD e PHP - TDC 2012
 
Aprensentacao oo-trincheiras
Aprensentacao oo-trincheirasAprensentacao oo-trincheiras
Aprensentacao oo-trincheiras
 
Apresentação web2py
Apresentação web2pyApresentação web2py
Apresentação web2py
 
DDD
DDDDDD
DDD
 
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
 
Desafios de projeto para quem usa a plataforma Android
Desafios de projeto para quem usa a plataforma AndroidDesafios de projeto para quem usa a plataforma Android
Desafios de projeto para quem usa a plataforma Android
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011
 

Mais de Jairo Junior

Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
Jairo Junior
 
Profissionais de TI: Desafios e Oportunidades
Profissionais de TI:  Desafios e OportunidadesProfissionais de TI:  Desafios e Oportunidades
Profissionais de TI: Desafios e Oportunidades
Jairo Junior
 
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações WebFrameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
Jairo Junior
 
Fatores (Des)Motivadores na Adoção de Metodologias Ágeis no Desenvolvimento d...
Fatores (Des)Motivadores na Adoção de Metodologias Ágeis no Desenvolvimento d...Fatores (Des)Motivadores na Adoção de Metodologias Ágeis no Desenvolvimento d...
Fatores (Des)Motivadores na Adoção de Metodologias Ágeis no Desenvolvimento d...
Jairo Junior
 
A educação mediada pelo computador: ferramentas do século XXI
A educação mediada pelo computador: ferramentas do século XXIA educação mediada pelo computador: ferramentas do século XXI
A educação mediada pelo computador: ferramentas do século XXI
Jairo Junior
 
Certificação Digital (Conceitos e Tendências)
Certificação Digital (Conceitos e Tendências)Certificação Digital (Conceitos e Tendências)
Certificação Digital (Conceitos e Tendências)
Jairo Junior
 

Mais de Jairo Junior (6)

Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Profissionais de TI: Desafios e Oportunidades
Profissionais de TI:  Desafios e OportunidadesProfissionais de TI:  Desafios e Oportunidades
Profissionais de TI: Desafios e Oportunidades
 
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações WebFrameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
 
Fatores (Des)Motivadores na Adoção de Metodologias Ágeis no Desenvolvimento d...
Fatores (Des)Motivadores na Adoção de Metodologias Ágeis no Desenvolvimento d...Fatores (Des)Motivadores na Adoção de Metodologias Ágeis no Desenvolvimento d...
Fatores (Des)Motivadores na Adoção de Metodologias Ágeis no Desenvolvimento d...
 
A educação mediada pelo computador: ferramentas do século XXI
A educação mediada pelo computador: ferramentas do século XXIA educação mediada pelo computador: ferramentas do século XXI
A educação mediada pelo computador: ferramentas do século XXI
 
Certificação Digital (Conceitos e Tendências)
Certificação Digital (Conceitos e Tendências)Certificação Digital (Conceitos e Tendências)
Certificação Digital (Conceitos e Tendências)
 

Último

Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 

Último (7)

Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 

Domain-Driven Design - Aplicada a um estudo de caso

  • 1. Domain-Driven Design A Utilização das Práticas do DDD Aplicada a um Estudo de Caso. Danillo César de Oliveira Melo Fábio Brasil Fernandes de Araújo Jairo Barros Junior Orientador: MSc. Ricardo Rubens FACULDADE DE ALAGOAS - FAL
  • 2. A utilização da linguagem ubíqua Construção do modelo de domínio Padrões de projeto Ciclo de vida de um objeto de domínio Estudo de caso Conclusão Apresentação
  • 3. Falha na comunicação Domínios complexos Alto acoplamento Baixa coesão Problemática
  • 4. Conjunto de práticas Ideal para domínios complexos Desenvolvimento centrado no domínio Linguagem onipresente Domain-Driven Design
  • 6. Comunicação em torno do domínio Manutenção da linguagem Modelo do domínio expressado no software Linguagem ubíqua
  • 8. Isolando o domínio Arquitetura em camadas Fonte: Imagemextraída e adaptada do livro, Domain-Driven Design: Tackling Complexity in the Heart of Software, Evans (2004, p. 68).
  • 9. Com a arquitetura em camadas não existe o alto acoplamento. Anti-padrão
  • 11. Deve ser dividida em módulos
  • 12. Criado a partir das conversas dos desenvolvedores com os especialistas de domínio. Representado diretamente no código. Modelo do Domínio
  • 13. Possui identificação única Possui características próprias dentro do modelo. Responsabilidade e associações baseadas na sua identificação e não em seus atributos. Entidade
  • 14. Somente transporta informações Não possui identificação única Imutável Possuem somente métodos de acesso Objeto de Valor
  • 15. Coordenam os trabalhos dos objetos do domínio Aplicação Domínio Infra-estrutura Serviço
  • 16. Ciclo de vida de um objeto Fonte: Imagemextraída e adaptada do livro, Domain-Driven Design: Tackling Complexity in the Heart of Software, Evans (2004, p. 123).
  • 17. Início do ciclo de vida Criação de objetos complexos e agregações Encapsula complexidade Fábricas
  • 20. Mapa de navegação Fonte: Imagemextraída e adaptada do livro, Domain-Driven Design: Tackling Complexity in the Heart of Software, Evans (2004, p. 65).
  • 21. Requisitos do projeto Estrutura do projeto Camada do domínio Estudo de caso
  • 22. “O sistema deve ter reserva e hospedagem, de forma que os clientes possam realizar suas reservas por telefone ou via internet. Uma reserva não é uma hospedagem, pois na hora da hospedagem a reserva feita pode ser alterada, mas caso isso não ocorra ela se torna uma hospedagem. Cada quarto possui um único identificador, existem cinco tipos de quarto, são eles: simples, casal, duplo, triplo e família. O hotel possui um amplo restaurante, que pode ser utilizado por qualquer cliente, mas existe uma área do restaurante só para os hospedes, assim como também existe uma área só para os fumantes, que conseguimos identificar no seu cadastro.” Requisitos do projeto
  • 29. A Comunicação A linguagem onipresente Desenvolvimento centrado no domínio Conclusão
  • 30. AVRAM, Abel; MARINESCU, Floyd. Domain-Driven Design Quickly.InfoQ. 2007;    DDD. Domain-Driven Design, disponível em http://domaindrivendesign.org/. Acessoem 3 de Julho de 2008;   EVANS, Eric. Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley. 2004;    FREEMAN, Elisabeth; FREEMAN, Eric; BATES, Bert; SIERRA, Kathy. Head First Design Patterns.O'REILLY. 2004;   METSKER, Steven John. Padrões de Projeto em Java.Bookman. 2004;    MCCARTHY, Tim. .NET Domain-Driven Design with C#: Problem - Design - Solution.Wrox. 2008;   NILSSON, Jimmy. Applying Domain-Driven Design and Patterns: With Examples in C# and .NET.Addison-Wesley. 2006;   SITEFANE, João Pedro Manaças. Desenvolvimento de software centrado no domínio. Lisboa. Dissertação de Mestrado. 2007; Referências