Domain driven design

1,806 views

Published on

Published in: Technology, Business
1 Comment
6 Likes
Statistics
Notes
No Downloads
Views
Total views
1,806
On SlideShare
0
From Embeds
0
Number of Embeds
243
Actions
Shares
0
Downloads
40
Comments
1
Likes
6
Embeds 0
No embeds

No notes for slide

Domain driven design

  1. 1. Domain Driven Design [DDD] Combatendo a complexidade no desenvolvimento de software Christiano Milfont Unifor 2010, Fortaleza Copyleft 2010 Milfont.org
  2. 2. Requirements Design Waterfall Implementation Testing Deployment Maintenance
  3. 3. Requirements Design Waterfall Implementation Testing Deployment Maintenance
  4. 4. Design
  5. 5. Design
  6. 6. Requirements Design Waterfall Implementation Testing Deployment Maintenance
  7. 7. Test First Testing Requirements Design Implementation Deployment Maintenance
  8. 8. Test First Testing Requirements Design Implementation Deployment Maintenance
  9. 9. Test First Testing Design Implementation Requirements Deployment Maintenance
  10. 10. Linguagem Ubíqua "A language structured around the domain model and used by all team members to connect all the activities of the team with the software."
  11. 11. Um Membro do projeto cadastra uma “Issue” no sistema. Um Gerente de projetos aceita ou rejeita a entrada de Issues para serem trabalhadas. Um Funcionário do hospital dá entrada do Paciente na Emergência. O Cenário de entrada por pacientes depende do Login do usuário com ROLE Admin na Action antes do forward. Um funcionário atende uma solicitação de saída de medicamento pelo prontuário do paciente com limite do cardápio do médico. A Tabela TB_ITEMS tem ligação com a Tabela TB_NOTAS
  12. 12. Um Membro do projeto cadastra uma “Issue” no sistema. Um Gerente de projetos aceita ou rejeita a entrada de Issues para serem trabalhadas. Um Funcionário do hospital dá entrada do Paciente na Emergência. O Cenário de entrada por pacientes depende do Login do usuário com ROLE Admin na Action antes do forward. Um funcionário atende uma solicitação de saída de medicamento pelo prontuário do paciente com limite do cardápio do médico. A Tabela TB_ITEMS tem ligação com a Tabela TB_NOTAS
  13. 13. Um Membro do projeto cadastra uma “Issue” no sistema. Um Gerente de projetos aceita ou rejeita a entrada de Issues para serem trabalhadas. Um Funcionário do hospital dá entrada do Paciente na Emergência. O Cenário de entrada por pacientes depende do Login do usuário com ROLE Admin na Action antes do forward. Um funcionário atende uma solicitação de saída de medicamento pelo prontuário do paciente com limite do cardápio do médico. A Tabela TB_ITEMS tem ligação com a Tabela TB_NOTAS
  14. 14. LoginAction Lembra como voce LoginForm fazia no Struts? LoginVO LoginBO LoginDAO DATABASE
  15. 15. LoginBean E sua LoginVO variação JSF? LoginBO DATABASE Login LoginDAO GenericDAO
  16. 16. LoginFacade Agora você é LoginService moderno Login DATABASE LoginRepository GenericRepository
  17. 17. LoginFacade Agora você é LoginService moderno Login DATABASE LoginRepository GenericRepository
  18. 18. Armas não matam pessoas... Pessoas matam pessoas...
  19. 19. Hands on...
  20. 20. access with REPOSITORIES SERVICES access with maintain integrity with ENTITIES express model with act as root of express model with AGGREGATES express model with MODEL-DRIVEN VALUE OBJECTS DESIGN encapsulate with encapsulate with encapsulate with isolate domain with X mutually exclusive choices LAYERED encapsulate with ARCHITECTURE FACTORIES SMART UI
  21. 21. Domain Element State/Behavior Entity, Value Object, Aggregate State and Behavior Data Transfer Object State only Service, Repository Behavior only
  22. 22. keep model unified by CONTINUOUS INTEGRATION SHARED KERNEL BOUNDED CONTEXT CUSTOMER/ names SUPPLIER enter overlap allied contexts through TEAMS assess/overview relate allied contexts as relationships with CONTEXT MAP overlap unilaterally as CONFORMIST support multiple UBIQUITOUS clients through LANGUAGE free teams to go OPEN HOST translate and insulate SERVICE formalize as PUBLISHED unilaterally with LANGUAGE SEPARATE WAYS ANTICORRUPTION LAYER
  23. 23. Shared Kernel shared Translation Map
  24. 24. Context Map Translation Model in Context Map Model in Context
  25. 25. Perguntas? http://www.milfont.org/tech/2010/05/27/palestra-bdd-unifor-2010/

×