Domain Driven Design

352 visualizações

Publicada em

Publicada em: Educação
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
352
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
4
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Domain Driven Design

  1. 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. 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. 3. DDD  –  DOMAIN  DRIVEN  DESIGN   FUTURO  3   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  4. 4. DDD  –  DOMAIN  DRIVEN  DESIGN   DISCAGEM  DIRETA  A  DISTÂNCIA  4   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  5. 5. DDD  –  DOMAIN  DRIVEN  DESIGN   “DDD  é  uma  abordagem     para  desenvolvimento     de  soWware.”  5   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  6. 6. DDD  –  DOMAIN  DRIVEN  DESIGN     BLA,  BLA,  BLA...     ERIC  EVANS  6   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  7. 7. FOCO  DO  DDD  7   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  8. 8. FOCO  DO  DDD   FOCO  NO  DOMÍNIO  DO  PROBLEMA  8   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  9. 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. 10. DOMÍNIO   ÁREA  DE  CONHECIMENTO   DO  SOFTWARE  10   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  11. 11. MODELO  11   ?   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  12. 12. MODELO   NÃO  PRECISA  SER     IMPECAVELMENTE  REALISTA   CHINA  MUNDO  12   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  13. 13. MODELO   MODELO  SÃO  BASEADOS     EM  ABSTRAÇÕES   MAPA  MUNDI  –  MODELO  POLÍTICO  13   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  14. 14. MODELO  14   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  15. 15. MODELO   GOOGLE  MAPS  15   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  16. 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. 17. DDD  –  DOMAIN  DRIVEN  DESIGN   FÁBRICA   OBJETOS  DE   SERVIÇOS   VALOR   MODELO   REPOSITÓRIO   ENTIDADES  17   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  18. 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. 19. LINGUAGEM  UBÍQUA   Analista  de   Negócio   Analista   Arquiteto   de   Sistema   Desenvolvedor  19   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  20. 20. CAMADAS   VERIFIQUE  AS  RESPONSABILIDADES     DAS  SUAS  CAMADAS  20   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  21. 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. 22. POCOS   BOM  E  VELHO  OBJETO  DO  CLR  22   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  23. 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. 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. 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. 26. AGREGAÇÃO  26   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  27. 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. 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. 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. 30. FÁBRICA   BOA  PRÁTRICA   ?  30   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  31. 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. 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. 33. PROJETO  –  CASCATA   ANÁLISE   PROJETO   IMPLEMENTAÇÃO   VERIFICAÇÃO   MANUTENÇÃO  33   CIÊNCIA  DA  COMPUTAÇÃO  -­‐  UFES  
  34. 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. 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  

×