Your SlideShare is downloading. ×
0
Domain driven design
Domain driven design
Domain driven design
Domain driven design
Domain driven design
Domain driven design
Domain driven design
Domain driven design
Domain driven design
Domain driven design
Domain driven design
Domain driven design
Domain driven design
Domain driven design
Domain driven design
Domain driven design
Domain driven design
Domain driven design
Domain driven design
Domain driven design
Domain driven design
Domain driven design
Domain driven design
Domain driven design
Domain driven design
Domain driven design
Domain driven design
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Domain driven design

1,513

Published on

Published in: Technology, Business
1 Comment
6 Likes
Statistics
Notes
No Downloads
Views
Total Views
1,513
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
39
Comments
1
Likes
6
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Domain Driven Design [DDD] Combatendo a complexidade no desenvolvimento de software Christiano Milfont Unifor 2010, Fortaleza Copyleft 2010 Milfont.org
  • 2. Requirements Design Waterfall Implementation Testing Deployment Maintenance
  • 3. Requirements Design Waterfall Implementation Testing Deployment Maintenance
  • 4. Design
  • 5. Design
  • 6. Requirements Design Waterfall Implementation Testing Deployment Maintenance
  • 7. Test First Testing Requirements Design Implementation Deployment Maintenance
  • 8. Test First Testing Requirements Design Implementation Deployment Maintenance
  • 9. Test First Testing Design Implementation Requirements Deployment Maintenance
  • 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. 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. 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. 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. LoginAction Lembra como voce LoginForm fazia no Struts? LoginVO LoginBO LoginDAO DATABASE
  • 15. LoginBean E sua LoginVO variação JSF? LoginBO DATABASE Login LoginDAO GenericDAO
  • 16. LoginFacade Agora você é LoginService moderno Login DATABASE LoginRepository GenericRepository
  • 17. LoginFacade Agora você é LoginService moderno Login DATABASE LoginRepository GenericRepository
  • 18. Armas não matam pessoas... Pessoas matam pessoas...
  • 19. Hands on...
  • 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. Domain Element State/Behavior Entity, Value Object, Aggregate State and Behavior Data Transfer Object State only Service, Repository Behavior only
  • 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. Shared Kernel shared Translation Map
  • 24. Context Map Translation Model in Context Map Model in Context
  • 25. Perguntas? http://www.milfont.org/tech/2010/05/27/palestra-bdd-unifor-2010/

×