Domain-Driven DesignA Utilização das Práticas do DDD Aplicada a um Estudo de Caso.Danillo César de Oliveira MeloFábio Brasil Fernandes de AraújoJairo Barros JuniorOrientador: MSc. Ricardo RubensFACULDADE DE ALAGOAS - FAL
A utilização da linguagem ubíquaConstrução do modelo de domínioPadrões de projetoCiclo de vida de um objeto de domínioEstudo de casoConclusãoApresentação
Falha na comunicaçãoDomínios complexosAlto acoplamentoBaixa coesãoProblemática
Conjunto de práticasIdeal para domínios complexosDesenvolvimento centrado no domínioLinguagem onipresenteDomain-Driven Design
Por onde começar?
Comunicação em torno do domínioManutenção da linguagemModelo do domínio expressado no softwareLinguagem ubíqua
Qual o Próximo passo?
Isolando o domínioArquitetura em camadasFonte: 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 únicaPossui 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çõesNão possui identificação únicaImutávelPossuem somente métodos de acessoObjeto de Valor
Coordenam os trabalhos dos objetos do domínioAplicaçãoDomínioInfra-estruturaServiço
Ciclo de vida de um objetoFonte: 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 vidaCriação de objetos complexos e agregaçõesEncapsula complexidadeFábricas
Agregações
Repositório
Mapa de navegaçãoFonte: Imagemextraída e adaptada do livro, Domain-Driven Design: Tackling Complexity in the Heart of Software, Evans (2004, p. 65).
Requisitos do projetoEstrutura do projetoCamada do domínioEstudo 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çãoA linguagem onipresenteDesenvolvimento centrado no domínioConclusã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

PDF
Portfolio do espetaculo qualquer coisa a gente inventa
PDF
PDF
Java Arrays
PPTX
Java Strings
PPTX
Java Virtual Machine (JVM), Difference JDK, JRE & JVM
PPT
Java packages
PDF
4 pillars of OOPS CONCEPT
PPTX
Access modifier and inheritance
Portfolio do espetaculo qualquer coisa a gente inventa
Java Arrays
Java Strings
Java Virtual Machine (JVM), Difference JDK, JRE & JVM
Java packages
4 pillars of OOPS CONCEPT
Access modifier and inheritance

Mais procurados (20)

PPTX
OCA Java SE 8 Exam Chapter 2 Operators & Statements
PPTX
Final keyword in java
PPTX
Java basics and java variables
PPTX
Lecture_7-Encapsulation in Java.pptx
PPTX
Arrays, Structures And Enums
PPT
Design pattern
PPTX
Vectors in Java
PPT
Unit 1 Java
PDF
SLR(1) parser
PPTX
Constructors in java
PPTX
Java abstract class & abstract methods
PPS
String and string buffer
PPT
Java inheritance
PPT
Java access modifiers
PPTX
Constructor in java
PDF
27 applet programming
PPTX
Chapter 05 classes and objects
PDF
Inner Classes in Java
PPTX
Mutable and immutable classes
PPTX
encapsulation, inheritance, overriding, overloading
OCA Java SE 8 Exam Chapter 2 Operators & Statements
Final keyword in java
Java basics and java variables
Lecture_7-Encapsulation in Java.pptx
Arrays, Structures And Enums
Design pattern
Vectors in Java
Unit 1 Java
SLR(1) parser
Constructors in java
Java abstract class & abstract methods
String and string buffer
Java inheritance
Java access modifiers
Constructor in java
27 applet programming
Chapter 05 classes and objects
Inner Classes in Java
Mutable and immutable classes
encapsulation, inheritance, overriding, overloading
Anúncio

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

PPTX
Domain-Driven Design
PPTX
Construindo aplicativos SharePoint 2013 com AngularJS
PDF
Como DDD e principalmente Domain Model contribuem na construção de microservi...
PPT
Webdesign Revisão 2019-01
PPT
Revisão Webdesign
PDF
Qualificação MACC- Entities
PDF
Frameworks PHP @edgarsandi
PDF
Micro frontend de um jeito que você nunca viu
PPT
Webdesign revisãao 2018-02
PPTX
Domain Driven Design (DDD)
PDF
NITECH - EVENT STORM
PDF
NITECH - EVENT STORM revisado 25Set.pdf
PDF
Framework usar ou não usar
PDF
DDD e PHP - TDC 2012
PPTX
Aprensentacao oo-trincheiras
PDF
Apresentação web2py
PDF
PPTX
DDD - Domain Driven Design
PPTX
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
PPTX
Desafios de projeto para quem usa a plataforma Android
Domain-Driven Design
Construindo aplicativos SharePoint 2013 com AngularJS
Como DDD e principalmente Domain Model contribuem na construção de microservi...
Webdesign Revisão 2019-01
Revisão Webdesign
Qualificação MACC- Entities
Frameworks PHP @edgarsandi
Micro frontend de um jeito que você nunca viu
Webdesign revisãao 2018-02
Domain Driven Design (DDD)
NITECH - EVENT STORM
NITECH - EVENT STORM revisado 25Set.pdf
Framework usar ou não usar
DDD e PHP - TDC 2012
Aprensentacao oo-trincheiras
Apresentação web2py
DDD - Domain Driven Design
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Desafios de projeto para quem usa a plataforma Android
Anúncio

Mais de Jairo Junior (6)

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

Último (17)

PDF
SEMINÁRIO DE IHC - A interface Homem-Máquina
PDF
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPT
Aula de Engenharia de Software principais caracteristicas
PDF
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PDF
Processamento da remessa no SAP ERP, SCM610 Col15
PPTX
ccursoammaiacursoammaiacursoammaia123456
PPTX
Analise Estatica de Compiladores para criar uma nova LP
PPTX
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
PPTX
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
PPTX
Tipos de servidor em redes de computador.pptx
PPT
Conceitos básicos de Redes Neurais Artificiais
PDF
Banco de Dados 2atualização de Banco de d
PDF
Jira Software projetos completos com scrum
PDF
Processos no SAP Extended Warehouse Management, EWM100 Col26
PDF
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
SEMINÁRIO DE IHC - A interface Homem-Máquina
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Aula de Engenharia de Software principais caracteristicas
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Processamento da remessa no SAP ERP, SCM610 Col15
ccursoammaiacursoammaiacursoammaia123456
Analise Estatica de Compiladores para criar uma nova LP
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
Tipos de servidor em redes de computador.pptx
Conceitos básicos de Redes Neurais Artificiais
Banco de Dados 2atualização de Banco de d
Jira Software projetos completos com scrum
Processos no SAP Extended Warehouse Management, EWM100 Col26
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,

Domain-Driven Design - Aplicada a um estudo de caso

  • 1. Domain-Driven DesignA Utilização das Práticas do DDD Aplicada a um Estudo de Caso.Danillo César de Oliveira MeloFábio Brasil Fernandes de AraújoJairo Barros JuniorOrientador: MSc. Ricardo RubensFACULDADE DE ALAGOAS - FAL
  • 2. A utilização da linguagem ubíquaConstrução do modelo de domínioPadrões de projetoCiclo de vida de um objeto de domínioEstudo de casoConclusãoApresentação
  • 3. Falha na comunicaçãoDomínios complexosAlto acoplamentoBaixa coesãoProblemática
  • 4. Conjunto de práticasIdeal para domínios complexosDesenvolvimento centrado no domínioLinguagem onipresenteDomain-Driven Design
  • 6. Comunicação em torno do domínioManutenção da linguagemModelo do domínio expressado no softwareLinguagem ubíqua
  • 8. Isolando o domínioArquitetura em camadasFonte: 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 únicaPossui 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çõesNão possui identificação únicaImutávelPossuem somente métodos de acessoObjeto de Valor
  • 15. Coordenam os trabalhos dos objetos do domínioAplicaçãoDomínioInfra-estruturaServiço
  • 16. Ciclo de vida de um objetoFonte: 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 vidaCriação de objetos complexos e agregaçõesEncapsula complexidadeFábricas
  • 20. Mapa de navegaçãoFonte: Imagemextraída e adaptada do livro, Domain-Driven Design: Tackling Complexity in the Heart of Software, Evans (2004, p. 65).
  • 21. Requisitos do projetoEstrutura do projetoCamada do domínioEstudo 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çãoA linguagem onipresenteDesenvolvimento centrado no domínioConclusã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