SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
DDD	
  –	
  DOMAIN	
  DRIVEN	
  DESIGN	
  



            DOMAIN	
  DRIVEN	
  DESIGN	
  
                               UFES	
  
            CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  –	
  2011/2	
  

                     Rodolfo	
  Signorelli	
  Spalenza	
  
                         @rodolfospalenza	
  
                    rodolfo.spalenza@gmail.com	
  


1	
                                                          CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
DDD	
  –	
  DOMAIN	
  DRIVEN	
  DESIGN	
  

                                           Linguagens	
  Dinâmicas	
  
          Agilidade	
  

                                                                           ORM	
  
                 Camadas	
  


        Injeção	
  de	
  Dependência	
  
                                            DDD	
                                    REST	
  


                 POJO	
                                 Orientação	
  ao	
  Objetos	
  

2	
                                                                      CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
DDD	
  –	
  DOMAIN	
  DRIVEN	
  DESIGN	
  



        FUTURO	
  




3	
                                                   CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
DDD	
  –	
  DOMAIN	
  DRIVEN	
  DESIGN	
  




                     DISCAGEM	
  DIRETA	
  A	
  DISTÂNCIA	
  



4	
                                                             CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
DDD	
  –	
  DOMAIN	
  DRIVEN	
  DESIGN	
  




        “DDD	
  é	
  uma	
  abordagem	
  	
  
         para	
  desenvolvimento	
  	
  
             de	
  soWware.”	
  

5	
                                                  CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
DDD	
  –	
  DOMAIN	
  DRIVEN	
  DESIGN	
  




                            	
  
                            BLA,	
  BLA,	
  BLA...	
  
                            	
  




                                                                         ERIC	
  EVANS	
  
6	
                                                      CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
FOCO	
  DO	
  DDD	
  




7	
                             CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
FOCO	
  DO	
  DDD	
  




                      FOCO	
  NO	
  DOMÍNIO	
  DO	
  PROBLEMA	
  

8	
                                                                 CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
DDD	
  –	
  PREMISSAS	
  

        Desenhos	
  complexos	
               Para	
  maioria	
  dos	
  projetos	
  	
  
        devem	
  ser	
  baseados	
             de	
  soWware	
  o	
  foco	
  deve	
  	
  
          em	
  um	
  modelo.	
                  ser	
  no	
  domínio	
  e	
  na	
  	
  
                                                  lógica	
  do	
  domínio.	
  	
  




                                       ERIC	
  EVANS	
  


9	
                                                            CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
DOMÍNIO	
  




                ÁREA	
  DE	
  CONHECIMENTO	
  
                     DO	
  SOFTWARE	
  



10	
                                    CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
MODELO	
  




11	
  
                      ?	
  
                      CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
MODELO	
  




                   NÃO	
  PRECISA	
  SER	
  	
  
               IMPECAVELMENTE	
  REALISTA	
  




                                       CHINA	
  MUNDO	
  

12	
                                              CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
MODELO	
  




         MODELO	
  SÃO	
  BASEADOS	
  	
  
           EM	
  ABSTRAÇÕES	
  

                        MAPA	
  MUNDI	
  –	
  MODELO	
  POLÍTICO	
  

13	
                                                 CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
MODELO	
  




14	
                  CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
MODELO	
  




                      GOOGLE	
  MAPS	
  

15	
                     CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
MODELO	
  –	
  RESUMINDO	
  

•  Modelos	
   são	
   abstrações,	
   isto	
   é,	
   o	
   que	
   não	
   for	
  
   interessante	
   para	
   a	
   solução	
   do	
   problema	
   não	
  
   deve	
  pertencer	
  ao	
  modelo.	
  
•  Modelos	
   deve	
   reflekr	
   código	
   e,	
   o	
   código,	
   deve	
  
   reflekr	
  o	
  modelo.	
  
•  Se	
  a	
  quankdade	
  de	
  informações	
  apresentadas	
  no	
  
   modelo	
  for	
  suficiente,	
  o	
  modelo	
  está	
  bom.	
  
•  Não	
  há	
  padrão	
  para	
  um	
  modelo.	
  
•  SIMPLICIDADE.	
  

16	
                                                          CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
DDD	
  –	
  DOMAIN	
  DRIVEN	
  DESIGN	
  

                                                 FÁBRICA	
  




                                                                          OBJETOS	
  DE	
  
                   SERVIÇOS	
  
                                                                            VALOR	
  


                                               MODELO	
  



                             REPOSITÓRIO	
                     ENTIDADES	
  




17	
                                                                                   CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
LINGUAGEM	
  UBÍQUA	
  

•  Ubíqua	
   quer	
   dizer	
   estar	
  
   em	
  todo	
  lugar.	
  
•  É	
  reflekda	
  no	
  modelo.	
  
•  A	
   linguagem	
   vem	
   do	
  
   business	
  expert.	
  
•  Falada	
  por	
  todo	
  o	
  kme.	
  




18	
                                         CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
LINGUAGEM	
  UBÍQUA	
  

                                  Analista	
  de	
  
                                   Negócio	
  




                                                       Analista	
  
                Arquiteto	
                               de	
  
                                                       Sistema	
  




                                Desenvolvedor	
  



19	
                                                             CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
CAMADAS	
  




              VERIFIQUE	
  AS	
  RESPONSABILIDADES	
  	
  
                     DAS	
  SUAS	
  CAMADAS	
  

20	
                                            CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
DDD	
  –	
  CAMADAS	
  




                    A	
  camada	
  de	
  domínio	
  
              é	
  o	
  coração	
  de	
  um	
  soWware	
  
                            de	
  negócio.	
  




21	
                                                         CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
POCOS	
  




                BOM	
  E	
  VELHO	
  OBJETO	
  DO	
  CLR	
  


22	
                                                   CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
ENTIDADES	
  



                                                         EnZdades	
  têm	
  significado	
  	
  
                                                         para	
  o	
  domínio.	
  



         EnZdades	
  possuem	
  idenkdade	
  
         para	
  o	
  domínio.	
  
                IDENTIDADE	
  PARA	
  O	
  DOMÍNIO	
  
                               ≠	
  
                   IDENTIDADE	
  PARA	
  O	
  DB	
  

23	
                                                                     CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
OBJETOS	
  DE	
  VALOR	
  


    Objetos	
  de	
  valor	
  não	
  tem	
  	
  
    Idenkdade	
  para	
  o	
  negócio.	
  



                                              São	
  reconhecidos	
  	
  
                                              pelos	
  seus	
  atributos.	
  
                                              Frequentemente	
  são	
  	
  
                                              imutáveis.	
  
24	
                                                           CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
AGREGAÇÃO	
  

Agregação	
  é	
  um	
  conjunto	
  de	
  enkdades	
  e	
  objetos	
  de	
  valores	
  
	
  que	
  se	
  relacionam	
  no	
  domínio.	
  	
  

                                                     Define	
  fronteiras	
  
                                                     para	
  o	
  domínio.	
  

                                                     Toda	
  agregação	
  	
  
                                                     tem	
  uma	
  raiz	
  para	
  	
  
                                                     controlar	
  o	
  acesso.	
  

25	
                                                             CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
AGREGAÇÃO	
  




26	
                     CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
AGREGAÇÃO	
  


                                                  NÃO	
  HÁ	
  
                                               REFERÊNCIAS	
  
                          TODA	
  
                                               DIRETAS	
  PARA	
  
                   ATUALIZAÇÃO	
  
                                                 OBJETOS	
  
                  DEVE	
  PASSA	
  PELA	
  
                           RAIZ	
              CONTIDOS	
  NO	
  
                                               INTERIOR	
  DA	
  
                                               AGRAGAÇÃO	
  



                   UMA	
  EXCLUSÃO	
          OS	
  OBJETOS	
  QUE	
  
                    DEVE	
  APAGAR	
                 DEVEM	
  
                      TODOS	
  OS	
           ESPECIFICAR	
  AS	
  
                     OBJETOS	
  DA	
             REGRAS	
  DE	
  
                    AGRAGAÇÃO	
                     NEGÓCIO	
  




27	
                                                                     CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
SERVIÇOS	
  


                                        Serviços	
  resolvem	
  
                                        problemas	
  de	
  negócio.	
  

                                         Não	
  são	
  enkdades	
  nem	
  
                                         objetos	
  de	
  valor.	
  

É	
  comum	
  ter	
  somente	
  um	
  	
  
método	
  e	
  nenhum	
  atributo.	
  

28	
                                                    CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
FÁBRICA	
  


                                              Fábricas	
  criam	
  objetos	
  
                                              complexos	
  do	
  domínio.	
  




         Um	
  carro	
  não	
  anda	
  	
  
         com	
  sua	
  fábrica.	
  

29	
                                                           CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
FÁBRICA	
  




                       BOA	
  PRÁTRICA	
  

                              ?	
  
30	
                                         CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
REPOSITÓRIOS	
  


                                             Repositórios	
  fantasiam	
  	
  
                                             dados	
  em	
  memória.	
  

                                             Para	
  o	
  consumidor	
  não	
  	
  
                                             há	
  diferença	
  onde	
  está	
  	
  
                                             o	
  objeto.	
  

         São	
  responsáveis	
  por	
  persiskr	
  e	
  destruir	
  os	
  	
  
         objetos.	
  
31	
                                                              CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
CICLO	
  DE	
  VIDA	
  DOS	
  OBJETOS	
  




         FÁBRICAS	
     REPOSITÓRIOS	
     REPOSITÓRIOS	
         REPOSITÓRIOS	
  
          CRIAM	
        RECUPERAM	
         ALTERAM	
             DESTROEM	
  




32	
                                                          CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
PROJETO	
  –	
  CASCATA	
  

                 ANÁLISE	
  




                               PROJETO	
  




                                             IMPLEMENTAÇÃO	
  




                                                                 VERIFICAÇÃO	
  




                                                                                   MANUTENÇÃO	
  




33	
                                                                                      CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
PROJETO	
  –	
  ÁGIL	
  

                                     Projeto	
  que	
  uklizam	
  DDD	
  	
  
                                     são	
  capazes	
  de	
  aceitas	
  as	
  	
  
                                     mudanças.	
  




         Feedback	
  constante.	
  


34	
                                                           CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  
REFERÊNCIAS	
  

[1]	
  –	
  Eric	
  Evans,	
  Domain	
  Driven	
  Design	
  –	
  Atacando	
  
as	
  Complexidades	
  no	
  Coração	
  do	
  SoWware.	
  
[2]	
  –	
  Leandro	
  Daniel,	
  
htp://www.leandrodaniel.com/reverb/category/DDD.aspx	
  
	
  




35	
                                                       CIÊNCIA	
  DA	
  COMPUTAÇÃO	
  -­‐	
  UFES	
  

Mais conteúdo relacionado

Destaque

Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)Tom Kocjan
 
A Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation SlidesA Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation Slidesthinkddd
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven DesignRyan Riley
 
Bridging business analysis and business architecture - The Open Group webinar
Bridging business analysis and business architecture - The Open Group webinarBridging business analysis and business architecture - The Open Group webinar
Bridging business analysis and business architecture - The Open Group webinarCraig Martin
 
Using Business Architecture to enable customer experience and digital strategy
Using Business Architecture to enable customer experience and digital strategyUsing Business Architecture to enable customer experience and digital strategy
Using Business Architecture to enable customer experience and digital strategyCraig Martin
 

Destaque (6)

Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)
 
A Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation SlidesA Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation Slides
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Bridging business analysis and business architecture - The Open Group webinar
Bridging business analysis and business architecture - The Open Group webinarBridging business analysis and business architecture - The Open Group webinar
Bridging business analysis and business architecture - The Open Group webinar
 
Using Business Architecture to enable customer experience and digital strategy
Using Business Architecture to enable customer experience and digital strategyUsing Business Architecture to enable customer experience and digital strategy
Using Business Architecture to enable customer experience and digital strategy
 
Domain Driven Design 101
Domain Driven Design 101Domain Driven Design 101
Domain Driven Design 101
 

Semelhante a DDD Introdução ao Domain Driven Design

A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!Isaac de Souza
 
SAP - Integração e mobilidade em tempo real
SAP - Integração e mobilidade em tempo realSAP - Integração e mobilidade em tempo real
SAP - Integração e mobilidade em tempo realRenilton Oliveira
 
Inovação Centrada no Usuário
Inovação Centrada no UsuárioInovação Centrada no Usuário
Inovação Centrada no UsuárioMourylise Heymer
 
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
 
Vinit Cloud Computing Anhembi Morumbi
Vinit   Cloud Computing   Anhembi MorumbiVinit   Cloud Computing   Anhembi Morumbi
Vinit Cloud Computing Anhembi Morumbivinitbr
 
Retorno do Investimento em Usabilidade
Retorno do Investimento em UsabilidadeRetorno do Investimento em Usabilidade
Retorno do Investimento em UsabilidadeBernardo Mattos
 
III SBTI - Sessão 4 – Abordagem Dirigida a Modelos para o Gerenciamento de Re...
III SBTI - Sessão 4 – Abordagem Dirigida a Modelos para o Gerenciamento de Re...III SBTI - Sessão 4 – Abordagem Dirigida a Modelos para o Gerenciamento de Re...
III SBTI - Sessão 4 – Abordagem Dirigida a Modelos para o Gerenciamento de Re...Felipe Alencar
 
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
 
Como construir o Cloud DATACENTER com segurança !
Como construir o Cloud DATACENTER com segurança !Como construir o Cloud DATACENTER com segurança !
Como construir o Cloud DATACENTER com segurança !Manoel Veras, Dr.Eng.
 
Domain Driven Design - Aplicando estrategias e padrões
Domain Driven Design - Aplicando estrategias e padrõesDomain Driven Design - Aplicando estrategias e padrões
Domain Driven Design - Aplicando estrategias e padrõesJoao Paulo Oliveira dos Santos
 
Experiência Empírica de Trabalho Comercial no Segmento de Pesquisa e Design C...
Experiência Empírica de Trabalho Comercial no Segmento de Pesquisa e Design C...Experiência Empírica de Trabalho Comercial no Segmento de Pesquisa e Design C...
Experiência Empírica de Trabalho Comercial no Segmento de Pesquisa e Design C...EBAI
 
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 FALIDOYan 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
 

Semelhante a DDD Introdução ao Domain Driven Design (20)

A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!
 
SAP - Integração e mobilidade em tempo real
SAP - Integração e mobilidade em tempo realSAP - Integração e mobilidade em tempo real
SAP - Integração e mobilidade em tempo real
 
Inovação Centrada no Usuário
Inovação Centrada no UsuárioInovação Centrada no Usuário
Inovação Centrada no Usuário
 
Domain-Driven-Design
Domain-Driven-DesignDomain-Driven-Design
Domain-Driven-Design
 
Domain-Driven-Design
 Domain-Driven-Design Domain-Driven-Design
Domain-Driven-Design
 
O retorno do investimento no projeto adequado de interfaces de usuário
O retorno do investimento no projeto adequado de interfaces de usuárioO retorno do investimento no projeto adequado de interfaces de usuário
O retorno do investimento no projeto adequado de interfaces de usuário
 
Vinit Cloud Computing Anhembi Morumbi
Vinit   Cloud Computing   Anhembi MorumbiVinit   Cloud Computing   Anhembi Morumbi
Vinit Cloud Computing Anhembi Morumbi
 
Retorno do Investimento em Usabilidade
Retorno do Investimento em UsabilidadeRetorno do Investimento em Usabilidade
Retorno do Investimento em Usabilidade
 
III SBTI - Sessão 4 – Abordagem Dirigida a Modelos para o Gerenciamento de Re...
III SBTI - Sessão 4 – Abordagem Dirigida a Modelos para o Gerenciamento de Re...III SBTI - Sessão 4 – Abordagem Dirigida a Modelos para o Gerenciamento de Re...
III SBTI - Sessão 4 – Abordagem Dirigida a Modelos para o Gerenciamento de Re...
 
SW CONSULTING
SW CONSULTINGSW CONSULTING
SW CONSULTING
 
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çã...
 
Como construir o Cloud DATACENTER com segurança !
Como construir o Cloud DATACENTER com segurança !Como construir o Cloud DATACENTER com segurança !
Como construir o Cloud DATACENTER com segurança !
 
Domain Driven Design - Aplicando estrategias e padrões
Domain Driven Design - Aplicando estrategias e padrõesDomain Driven Design - Aplicando estrategias e padrões
Domain Driven Design - Aplicando estrategias e padrões
 
Experiência Empírica de Trabalho Comercial no Segmento de Pesquisa e Design C...
Experiência Empírica de Trabalho Comercial no Segmento de Pesquisa e Design C...Experiência Empírica de Trabalho Comercial no Segmento de Pesquisa e Design C...
Experiência Empírica de Trabalho Comercial no Segmento de Pesquisa e Design C...
 
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
 
20100930 SaaS by RocMayer
20100930 SaaS by RocMayer20100930 SaaS by RocMayer
20100930 SaaS by RocMayer
 
Tudojuntoseparado
TudojuntoseparadoTudojuntoseparado
Tudojuntoseparado
 
Domain driven design - Visão Geral
Domain driven design - Visão GeralDomain driven design - Visão Geral
Domain driven design - Visão Geral
 
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...
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 

Último

ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxconcelhovdragons
 
Educação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPEducação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPanandatss1
 
Atividade com a letra da música Meu Abrigo
Atividade com a letra da música Meu AbrigoAtividade com a letra da música Meu Abrigo
Atividade com a letra da música Meu AbrigoMary Alvarenga
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
Prática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISPrática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISVitor Vieira Vasconcelos
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfIedaGoethe
 
Bingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosBingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosAntnyoAllysson
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfHenrique Pontes
 
Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Susana Stoffel
 
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...LizanSantos1
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfcartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfIedaGoethe
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxIsabelaRafael2
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniCassio Meira Jr.
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveaulasgege
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxfabiolalopesmartins1
 

Último (20)

ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
 
Educação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPEducação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SP
 
Atividade com a letra da música Meu Abrigo
Atividade com a letra da música Meu AbrigoAtividade com a letra da música Meu Abrigo
Atividade com a letra da música Meu Abrigo
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
Prática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISPrática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGIS
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
 
Bingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosBingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteiros
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
 
Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.
 
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfcartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptx
 

DDD Introdução ao Domain Driven Design

  • 1. DDD  –  DOMAIN  DRIVEN  DESIGN   DOMAIN  DRIVEN  DESIGN   UFES   CIÊNCIA  DA  COMPUTAÇÃO  –  2011/2   Rodolfo  Signorelli  Spalenza   @rodolfospalenza   rodolfo.spalenza@gmail.com   1   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 2. DDD  –  DOMAIN  DRIVEN  DESIGN   Linguagens  Dinâmicas   Agilidade   ORM   Camadas   Injeção  de  Dependência   DDD   REST   POJO   Orientação  ao  Objetos   2   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 3. DDD  –  DOMAIN  DRIVEN  DESIGN   FUTURO   3   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 4. DDD  –  DOMAIN  DRIVEN  DESIGN   DISCAGEM  DIRETA  A  DISTÂNCIA   4   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 5. DDD  –  DOMAIN  DRIVEN  DESIGN   “DDD  é  uma  abordagem     para  desenvolvimento     de  soWware.”   5   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 6. DDD  –  DOMAIN  DRIVEN  DESIGN     BLA,  BLA,  BLA...     ERIC  EVANS   6   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 7. FOCO  DO  DDD   7   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 8. FOCO  DO  DDD   FOCO  NO  DOMÍNIO  DO  PROBLEMA   8   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 9. DDD  –  PREMISSAS   Desenhos  complexos   Para  maioria  dos  projetos     devem  ser  baseados   de  soWware  o  foco  deve     em  um  modelo.   ser  no  domínio  e  na     lógica  do  domínio.     ERIC  EVANS   9   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 10. DOMÍNIO   ÁREA  DE  CONHECIMENTO   DO  SOFTWARE   10   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 11. MODELO   11   ?   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 12. MODELO   NÃO  PRECISA  SER     IMPECAVELMENTE  REALISTA   CHINA  MUNDO   12   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 13. MODELO   MODELO  SÃO  BASEADOS     EM  ABSTRAÇÕES   MAPA  MUNDI  –  MODELO  POLÍTICO   13   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 14. MODELO   14   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 15. MODELO   GOOGLE  MAPS   15   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 16. MODELO  –  RESUMINDO   •  Modelos   são   abstrações,   isto   é,   o   que   não   for   interessante   para   a   solução   do   problema   não   deve  pertencer  ao  modelo.   •  Modelos   deve   reflekr   código   e,   o   código,   deve   reflekr  o  modelo.   •  Se  a  quankdade  de  informações  apresentadas  no   modelo  for  suficiente,  o  modelo  está  bom.   •  Não  há  padrão  para  um  modelo.   •  SIMPLICIDADE.   16   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 17. DDD  –  DOMAIN  DRIVEN  DESIGN   FÁBRICA   OBJETOS  DE   SERVIÇOS   VALOR   MODELO   REPOSITÓRIO   ENTIDADES   17   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 18. LINGUAGEM  UBÍQUA   •  Ubíqua   quer   dizer   estar   em  todo  lugar.   •  É  reflekda  no  modelo.   •  A   linguagem   vem   do   business  expert.   •  Falada  por  todo  o  kme.   18   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 19. LINGUAGEM  UBÍQUA   Analista  de   Negócio   Analista   Arquiteto   de   Sistema   Desenvolvedor   19   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 20. CAMADAS   VERIFIQUE  AS  RESPONSABILIDADES     DAS  SUAS  CAMADAS   20   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 21. DDD  –  CAMADAS   A  camada  de  domínio   é  o  coração  de  um  soWware   de  negócio.   21   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 22. POCOS   BOM  E  VELHO  OBJETO  DO  CLR   22   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 23. ENTIDADES   EnZdades  têm  significado     para  o  domínio.   EnZdades  possuem  idenkdade   para  o  domínio.   IDENTIDADE  PARA  O  DOMÍNIO   ≠   IDENTIDADE  PARA  O  DB   23   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 24. OBJETOS  DE  VALOR   Objetos  de  valor  não  tem     Idenkdade  para  o  negócio.   São  reconhecidos     pelos  seus  atributos.   Frequentemente  são     imutáveis.   24   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 25. AGREGAÇÃO   Agregação  é  um  conjunto  de  enkdades  e  objetos  de  valores    que  se  relacionam  no  domínio.     Define  fronteiras   para  o  domínio.   Toda  agregação     tem  uma  raiz  para     controlar  o  acesso.   25   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 26. AGREGAÇÃO   26   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 27. AGREGAÇÃO   NÃO  HÁ   REFERÊNCIAS   TODA   DIRETAS  PARA   ATUALIZAÇÃO   OBJETOS   DEVE  PASSA  PELA   RAIZ   CONTIDOS  NO   INTERIOR  DA   AGRAGAÇÃO   UMA  EXCLUSÃO   OS  OBJETOS  QUE   DEVE  APAGAR   DEVEM   TODOS  OS   ESPECIFICAR  AS   OBJETOS  DA   REGRAS  DE   AGRAGAÇÃO   NEGÓCIO   27   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 28. SERVIÇOS   Serviços  resolvem   problemas  de  negócio.   Não  são  enkdades  nem   objetos  de  valor.   É  comum  ter  somente  um     método  e  nenhum  atributo.   28   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 29. FÁBRICA   Fábricas  criam  objetos   complexos  do  domínio.   Um  carro  não  anda     com  sua  fábrica.   29   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 30. FÁBRICA   BOA  PRÁTRICA   ?   30   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 31. REPOSITÓRIOS   Repositórios  fantasiam     dados  em  memória.   Para  o  consumidor  não     há  diferença  onde  está     o  objeto.   São  responsáveis  por  persiskr  e  destruir  os     objetos.   31   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 32. CICLO  DE  VIDA  DOS  OBJETOS   FÁBRICAS   REPOSITÓRIOS   REPOSITÓRIOS   REPOSITÓRIOS   CRIAM   RECUPERAM   ALTERAM   DESTROEM   32   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 33. PROJETO  –  CASCATA   ANÁLISE   PROJETO   IMPLEMENTAÇÃO   VERIFICAÇÃO   MANUTENÇÃO   33   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 34. PROJETO  –  ÁGIL   Projeto  que  uklizam  DDD     são  capazes  de  aceitas  as     mudanças.   Feedback  constante.   34   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  • 35. REFERÊNCIAS   [1]  –  Eric  Evans,  Domain  Driven  Design  –  Atacando   as  Complexidades  no  Coração  do  SoWware.   [2]  –  Leandro  Daniel,   htp://www.leandrodaniel.com/reverb/category/DDD.aspx     35   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES