SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler offline
Domain Driven Design     (introdução)

          Vitor Castro
          facebook.com/aitproeg




sexta-feira, 9 de novembro de 12
O que é ?


                Projeto orientado a domínio !
                Uso de linguagem ubíqua
                Não tem foco em Linguagem de Programação




sexta-feira, 9 de novembro de 12
Exemplo:

                Analise a frase: Temos que emitir a fatura para o
                cliente antes da data limite
                O que você consegue identificar ?




sexta-feira, 9 de novembro de 12
Temos que emitir a fatura para
          o cliente antes da data limite

                Uma classe para a entidade Cliente;
                Uma classe para a entidade Fatura;
                Algum serviço que tenha um método emitir;
                Algum atributo com o nome de data limite.




sexta-feira, 9 de novembro de 12
DDD

                Cultivar uma linguagem baseado no modelo.
                A equipe de desenvolvimento deve está em constante
                conversa com os especialista de negócio.
                O modelo deve ser a representação perfeita do
                domínio.




sexta-feira, 9 de novembro de 12
Design dirigido por Modelo -
                                MDD




sexta-feira, 9 de novembro de 12
Isolando o domínio




sexta-feira, 9 de novembro de 12
Camada de Domínio


                O pré-requisito para o DDD é o isolamento da
                implementação do domínio.
                Contém: conceitos, lógicas e regras de negócio




sexta-feira, 9 de novembro de 12
Entidade X Objeto de Valor

                Entidade: Coisas que necessitem de identidade.
                Objeto de Valor: Transportadores de valores, não
                precisam de uma identidade.


                Agregado: Objeto que associa Entidade ou Objeto de
                Valor



sexta-feira, 9 de novembro de 12
Serviço

                Contém operações de domínio que não pertencem a
                Entidade e Objeto de Valor.
                Serviço não guarda estado
                Enfatiza a relação entre as Entidades e Objeto de Valor
                Serviço de Domínio, de aplicativo e de infra-estrutura




sexta-feira, 9 de novembro de 12
Exemplo de Serviço:


                Aplicação: Processar um entrada de dados
                Domínio: Interagir com entidades para executar uma
                operação
                Infra-estrutura: Enviar email




sexta-feira, 9 de novembro de 12
Fábricas


                Classes para o processo de criação dos Agregados ou
                dos objetos de valor.
                Forneçem o encapsulamento para os agregados.




sexta-feira, 9 de novembro de 12
Repositórios


                Responsável por manter o ciclo de vida(criação,
                alteração e remoção) das Entidade e objeto de Valor.
                Controla a persistência dos objetos.




sexta-feira, 9 de novembro de 12
Obrigado
                                   facebook.com/aitproeg




sexta-feira, 9 de novembro de 12

Mais conteúdo relacionado

Destaque

Apresentação comercial mogi guaçu nova
Apresentação comercial mogi guaçu novaApresentação comercial mogi guaçu nova
Apresentação comercial mogi guaçu novaAna Paula Montoni
 
Lazarillode tormesescuderonotaspreviascomentariotexto
Lazarillode tormesescuderonotaspreviascomentariotextoLazarillode tormesescuderonotaspreviascomentariotexto
Lazarillode tormesescuderonotaspreviascomentariotextoAsier Apodaca
 
Presentacion
PresentacionPresentacion
Presentacioninma_27
 
El atletismo grupo Calaveras
El atletismo   grupo CalaverasEl atletismo   grupo Calaveras
El atletismo grupo Calaverasemangasl
 
Análisis de medios y materiales didácticos
Análisis de medios y materiales didácticosAnálisis de medios y materiales didácticos
Análisis de medios y materiales didácticosVANESAGP
 
La tecnologia
La tecnologiaLa tecnologia
La tecnologiakokoch4
 
Los años 90 proyecto
Los años 90 proyectoLos años 90 proyecto
Los años 90 proyectosamyta2520
 
Temario de seguridad informatica..antivirus informaticos
Temario de seguridad informatica..antivirus informaticosTemario de seguridad informatica..antivirus informaticos
Temario de seguridad informatica..antivirus informaticosjhadir
 
Introducción al dojo 03
Introducción al dojo 03Introducción al dojo 03
Introducción al dojo 03ukeitaro
 
Trabalho de estatísticas
Trabalho de estatísticasTrabalho de estatísticas
Trabalho de estatísticasviniciusch22
 

Destaque (20)

ANGELIKCHAVES
ANGELIKCHAVESANGELIKCHAVES
ANGELIKCHAVES
 
Apresentação comercial mogi guaçu nova
Apresentação comercial mogi guaçu novaApresentação comercial mogi guaçu nova
Apresentação comercial mogi guaçu nova
 
El trueque indio
El  trueque indioEl  trueque indio
El trueque indio
 
Diapositiva
DiapositivaDiapositiva
Diapositiva
 
Tics
TicsTics
Tics
 
Angelik
AngelikAngelik
Angelik
 
Oxigenioterapia
OxigenioterapiaOxigenioterapia
Oxigenioterapia
 
WebQuest
WebQuestWebQuest
WebQuest
 
Lazarillode tormesescuderonotaspreviascomentariotexto
Lazarillode tormesescuderonotaspreviascomentariotextoLazarillode tormesescuderonotaspreviascomentariotexto
Lazarillode tormesescuderonotaspreviascomentariotexto
 
Presentacion
PresentacionPresentacion
Presentacion
 
El atletismo grupo Calaveras
El atletismo   grupo CalaverasEl atletismo   grupo Calaveras
El atletismo grupo Calaveras
 
Análisis de medios y materiales didácticos
Análisis de medios y materiales didácticosAnálisis de medios y materiales didácticos
Análisis de medios y materiales didácticos
 
Aceitacao cela
Aceitacao celaAceitacao cela
Aceitacao cela
 
La tecnologia
La tecnologiaLa tecnologia
La tecnologia
 
Los años 90 proyecto
Los años 90 proyectoLos años 90 proyecto
Los años 90 proyecto
 
Temario de seguridad informatica..antivirus informaticos
Temario de seguridad informatica..antivirus informaticosTemario de seguridad informatica..antivirus informaticos
Temario de seguridad informatica..antivirus informaticos
 
Introducción al dojo 03
Introducción al dojo 03Introducción al dojo 03
Introducción al dojo 03
 
Los+años+..
Los+años+..Los+años+..
Los+años+..
 
Modificado
ModificadoModificado
Modificado
 
Trabalho de estatísticas
Trabalho de estatísticasTrabalho de estatísticas
Trabalho de estatísticas
 

Semelhante a Domain Driven Design

Introdução ao Domain-Driven Design
Introdução ao Domain-Driven DesignIntrodução ao Domain-Driven Design
Introdução ao Domain-Driven DesignAndré Borgonovo
 
Domain-Driven-Design
Domain-Driven-DesignDomain-Driven-Design
Domain-Driven-DesignWende Mendes
 
Domain-Driven-Design
 Domain-Driven-Design Domain-Driven-Design
Domain-Driven-DesignWende Mendes
 
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
 
11 Passos para Facilitar a Compra da sua Ferramenta de SAC
11 Passos para Facilitar a Compra da sua Ferramenta de SAC11 Passos para Facilitar a Compra da sua Ferramenta de SAC
11 Passos para Facilitar a Compra da sua Ferramenta de SACZendesk Brasil
 
Domain Driven Design PHP TDC2014
Domain Driven Design PHP TDC2014Domain Driven Design PHP TDC2014
Domain Driven Design PHP TDC2014Paulo Victor Gomes
 
Cultura DevOps - Integração entre infra e devel
Cultura DevOps - Integração entre infra e develCultura DevOps - Integração entre infra e devel
Cultura DevOps - Integração entre infra e develJose Augusto Carvalho
 
APLICATIVOS: Por que ainda não criou o seu? (FMDS 2011)
APLICATIVOS: Por que ainda não criou o seu? (FMDS 2011)APLICATIVOS: Por que ainda não criou o seu? (FMDS 2011)
APLICATIVOS: Por que ainda não criou o seu? (FMDS 2011)FMDS_Oficial
 
Technology Radar_ThoughtWorks_Vol_22
Technology Radar_ThoughtWorks_Vol_22Technology Radar_ThoughtWorks_Vol_22
Technology Radar_ThoughtWorks_Vol_22Hudson Augusto
 
IaaS: Implantação e gerenciamento de configurações de ambientes Cloud usando...
 IaaS: Implantação e gerenciamento de configurações de ambientes Cloud usando... IaaS: Implantação e gerenciamento de configurações de ambientes Cloud usando...
IaaS: Implantação e gerenciamento de configurações de ambientes Cloud usando...Diego Santos
 
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
 
Domain Driven Design com Python
Domain Driven Design com PythonDomain Driven Design com Python
Domain Driven Design com PythonFrederico Cabral
 
DDD e PHP - TDC 2012
DDD e PHP - TDC 2012DDD e PHP - TDC 2012
DDD e PHP - TDC 2012Luís Cobucci
 
Indo além do técnico para desenvolver sistemas que evoluem na velocidade do...
Indo além do técnico para desenvolver sistemas que evoluem na velocidade do...Indo além do técnico para desenvolver sistemas que evoluem na velocidade do...
Indo além do técnico para desenvolver sistemas que evoluem na velocidade do...Taller Negócio Digitais
 
Cultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e develCultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e develJose Augusto Carvalho
 

Semelhante a Domain Driven Design (20)

Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Introdução ao Domain-Driven Design
Introdução ao Domain-Driven DesignIntrodução ao Domain-Driven Design
Introdução ao Domain-Driven Design
 
Domain-Driven-Design
Domain-Driven-DesignDomain-Driven-Design
Domain-Driven-Design
 
Domain-Driven-Design
 Domain-Driven-Design Domain-Driven-Design
Domain-Driven-Design
 
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
 
Treinamento DDD .Net
Treinamento DDD .NetTreinamento DDD .Net
Treinamento DDD .Net
 
11 Passos para Facilitar a Compra da sua Ferramenta de SAC
11 Passos para Facilitar a Compra da sua Ferramenta de SAC11 Passos para Facilitar a Compra da sua Ferramenta de SAC
11 Passos para Facilitar a Compra da sua Ferramenta de SAC
 
Workshop DDD
Workshop DDDWorkshop DDD
Workshop DDD
 
Domain Driven Design PHP TDC2014
Domain Driven Design PHP TDC2014Domain Driven Design PHP TDC2014
Domain Driven Design PHP TDC2014
 
Palestra Puppet Hora Livre
Palestra Puppet Hora LivrePalestra Puppet Hora Livre
Palestra Puppet Hora Livre
 
Cultura DevOps - Integração entre infra e devel
Cultura DevOps - Integração entre infra e develCultura DevOps - Integração entre infra e devel
Cultura DevOps - Integração entre infra e devel
 
APLICATIVOS: Por que ainda não criou o seu? (FMDS 2011)
APLICATIVOS: Por que ainda não criou o seu? (FMDS 2011)APLICATIVOS: Por que ainda não criou o seu? (FMDS 2011)
APLICATIVOS: Por que ainda não criou o seu? (FMDS 2011)
 
Technology Radar_ThoughtWorks_Vol_22
Technology Radar_ThoughtWorks_Vol_22Technology Radar_ThoughtWorks_Vol_22
Technology Radar_ThoughtWorks_Vol_22
 
IaaS: Implantação e gerenciamento de configurações de ambientes Cloud usando...
 IaaS: Implantação e gerenciamento de configurações de ambientes Cloud usando... IaaS: Implantação e gerenciamento de configurações de ambientes Cloud usando...
IaaS: Implantação e gerenciamento de configurações de ambientes Cloud usando...
 
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 in PHP
DDD in PHPDDD in PHP
DDD in PHP
 
Domain Driven Design com Python
Domain Driven Design com PythonDomain Driven Design com Python
Domain Driven Design com Python
 
DDD e PHP - TDC 2012
DDD e PHP - TDC 2012DDD e PHP - TDC 2012
DDD e PHP - TDC 2012
 
Indo além do técnico para desenvolver sistemas que evoluem na velocidade do...
Indo além do técnico para desenvolver sistemas que evoluem na velocidade do...Indo além do técnico para desenvolver sistemas que evoluem na velocidade do...
Indo além do técnico para desenvolver sistemas que evoluem na velocidade do...
 
Cultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e develCultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e devel
 

Mais de COTIC-PROEG (UFPA) (20)

LT - Redis
LT - RedisLT - Redis
LT - Redis
 
LT Ansible
LT AnsibleLT Ansible
LT Ansible
 
Testes automatizados com Cypress
Testes automatizados com CypressTestes automatizados com Cypress
Testes automatizados com Cypress
 
Loop back
Loop backLoop back
Loop back
 
METEOR
METEORMETEOR
METEOR
 
Desenvolvimento de software tradicional vs ágil
Desenvolvimento de software tradicional vs ágilDesenvolvimento de software tradicional vs ágil
Desenvolvimento de software tradicional vs ágil
 
Canva
CanvaCanva
Canva
 
Git v2
Git v2Git v2
Git v2
 
Atitudes que levam ao Fracasso profissional
Atitudes que levam ao Fracasso profissionalAtitudes que levam ao Fracasso profissional
Atitudes que levam ao Fracasso profissional
 
Os 5 Sensos da Qualidade
Os 5 Sensos da QualidadeOs 5 Sensos da Qualidade
Os 5 Sensos da Qualidade
 
WATSON - O Fascinante Computador da IBM
WATSON - O Fascinante Computador da IBMWATSON - O Fascinante Computador da IBM
WATSON - O Fascinante Computador da IBM
 
Produtividade sem enrrolação
Produtividade sem enrrolaçãoProdutividade sem enrrolação
Produtividade sem enrrolação
 
LAB JavaScript
LAB JavaScriptLAB JavaScript
LAB JavaScript
 
Principios e Valores Ágeis
Principios e Valores ÁgeisPrincipios e Valores Ágeis
Principios e Valores Ágeis
 
Big data
Big dataBig data
Big data
 
Metricas para Times Ágeis
Metricas para Times ÁgeisMetricas para Times Ágeis
Metricas para Times Ágeis
 
Aplicação de Abordagens Ágeis: Estudo de Caso de utlização do SCRUM – PROEG/UFPA
Aplicação de Abordagens Ágeis: Estudo de Caso de utlização do SCRUM – PROEG/UFPAAplicação de Abordagens Ágeis: Estudo de Caso de utlização do SCRUM – PROEG/UFPA
Aplicação de Abordagens Ágeis: Estudo de Caso de utlização do SCRUM – PROEG/UFPA
 
Técnicas para Programação em Par
Técnicas para Programação em ParTécnicas para Programação em Par
Técnicas para Programação em Par
 
Feedback Canvas
Feedback CanvasFeedback Canvas
Feedback Canvas
 
5 Doenças do Gerenciamento de Projetos
5 Doenças do Gerenciamento de Projetos5 Doenças do Gerenciamento de Projetos
5 Doenças do Gerenciamento de Projetos
 

Domain Driven Design

  • 1. Domain Driven Design (introdução) Vitor Castro facebook.com/aitproeg sexta-feira, 9 de novembro de 12
  • 2. O que é ? Projeto orientado a domínio ! Uso de linguagem ubíqua Não tem foco em Linguagem de Programação sexta-feira, 9 de novembro de 12
  • 3. Exemplo: Analise a frase: Temos que emitir a fatura para o cliente antes da data limite O que você consegue identificar ? sexta-feira, 9 de novembro de 12
  • 4. Temos que emitir a fatura para o cliente antes da data limite Uma classe para a entidade Cliente; Uma classe para a entidade Fatura; Algum serviço que tenha um método emitir; Algum atributo com o nome de data limite. sexta-feira, 9 de novembro de 12
  • 5. DDD Cultivar uma linguagem baseado no modelo. A equipe de desenvolvimento deve está em constante conversa com os especialista de negócio. O modelo deve ser a representação perfeita do domínio. sexta-feira, 9 de novembro de 12
  • 6. Design dirigido por Modelo - MDD sexta-feira, 9 de novembro de 12
  • 7. Isolando o domínio sexta-feira, 9 de novembro de 12
  • 8. Camada de Domínio O pré-requisito para o DDD é o isolamento da implementação do domínio. Contém: conceitos, lógicas e regras de negócio sexta-feira, 9 de novembro de 12
  • 9. Entidade X Objeto de Valor Entidade: Coisas que necessitem de identidade. Objeto de Valor: Transportadores de valores, não precisam de uma identidade. Agregado: Objeto que associa Entidade ou Objeto de Valor sexta-feira, 9 de novembro de 12
  • 10. Serviço Contém operações de domínio que não pertencem a Entidade e Objeto de Valor. Serviço não guarda estado Enfatiza a relação entre as Entidades e Objeto de Valor Serviço de Domínio, de aplicativo e de infra-estrutura sexta-feira, 9 de novembro de 12
  • 11. Exemplo de Serviço: Aplicação: Processar um entrada de dados Domínio: Interagir com entidades para executar uma operação Infra-estrutura: Enviar email sexta-feira, 9 de novembro de 12
  • 12. Fábricas Classes para o processo de criação dos Agregados ou dos objetos de valor. Forneçem o encapsulamento para os agregados. sexta-feira, 9 de novembro de 12
  • 13. Repositórios Responsável por manter o ciclo de vida(criação, alteração e remoção) das Entidade e objeto de Valor. Controla a persistência dos objetos. sexta-feira, 9 de novembro de 12
  • 14. Obrigado facebook.com/aitproeg sexta-feira, 9 de novembro de 12