+ All Categories
Home > Technology > Domain driven design

Domain driven design

Date post: 02-Nov-2014
Category:
Upload: milfont-consulting
View: 4 times
Download: 0 times
Share this document with a friend
Description:
 
Popular Tags:
27
Domain Driven Design [DDD] Combatendo a complexidade no desenvolvimento de software Christiano Milfont Unifor 2010, Fortaleza Copyleft 2010 Milfont.org
Transcript
Page 1: Domain driven design

Domain Driven Design [DDD]

Combatendo a complexidade no desenvolvimento de

software

Christiano MilfontUnifor 2010, FortalezaCopyleft 2010 Milfont.org

Page 2: Domain driven design

Requirements

Design

Implementation

Testing

Maintenance

Deployment

Waterfall

Page 3: Domain driven design

Requirements

Design

Implementation

Testing

Maintenance

Deployment

Waterfall

Page 4: Domain driven design

Design

Page 5: Domain driven design

Design

Page 6: Domain driven design

Requirements

Design

Implementation

Testing

Maintenance

Deployment

Waterfall

Page 7: Domain driven design

Requirements

Design

Implementation

Testing

Maintenance

Deployment

Test First

Page 8: Domain driven design

Requirements

Design

Implementation

Testing

Maintenance

Deployment

Test First

Page 9: Domain driven design

Requirements

Design Implementation

Testing

Maintenance

Deployment

Test First

Page 10: Domain driven design

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."

Page 11: Domain driven design

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

Page 12: Domain driven design

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

Page 13: Domain driven design

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

Page 14: Domain driven design
Page 15: Domain driven design
Page 16: Domain driven design

LoginAction

LoginForm

LoginVO

LoginBO

DATABASE

LoginDAO

Lembra como voce

fazia no Struts?

Page 17: Domain driven design

LoginBean

LoginVO

LoginDATABASE

LoginDAO

E sua variação JSF?

GenericDAO

LoginBO

Page 18: Domain driven design

LoginFacade

Login DATABASE

LoginRepository

Agora você é moderno

GenericRepository

LoginService

Page 19: Domain driven design

LoginFacade

Login DATABASE

LoginRepository

Agora você é moderno

GenericRepository

LoginService

Page 20: Domain driven design

Armas não matam pessoas...

Pessoas matam pessoas...

Page 21: Domain driven design

Hands on...

Page 22: Domain driven design

encapsulate with

MODEL-DRIVEN

DESIGN

express model with

isolate domain with

encapsulate with

ENTITIES

VALUE OBJECTS

LAYERED

ARCHITECTURE

AGGREGATES

REPOSITORIES

act as root of

SMART UI

X

FACTORIES

encapsulate with

express model with

encapsulate with

mutually exclusivechoices

access with

maintain integrity with

access withSERVICES

express model with

Page 23: Domain driven design

Domain Element State/BehaviorEntity, Value Object, Aggregate State and Behavior

Data Transfer Object State onlyService, Repository Behavior only

Page 24: Domain driven design

CONTEXT MAP

overlap allied contexts through

overlap unilaterally as

support multipleclients through

formalize as

CONTINUOUS

INTEGRATION

CUSTOMER/

SUPPLIER

TEAMS

CONFORMIST

OPEN HOST

SERVICE

SEPARATE

WAYS

PUBLISHED

LANGUAGE

SHARED

KERNEL

relate allied contexts as

free teams to go

ANTICORRUPTION

LAYER

translate and insulateunilaterally with

BOUNDED

CONTEXT

keep model unified by

assess/overview relationships with

UBIQUITOUS

LANGUAGE

namesenter

Page 25: Domain driven design

TranslationMap

shared

Shared Kernel

Page 26: Domain driven design

Model in Context

Model in Context

TranslationMap

Context Map

Page 27: Domain driven design

Perguntas?

http://www.milfont.org/tech/2010/05/27/palestra-bdd-unifor-2010/


Recommended