Академический Документы
Профессиональный Документы
Культура Документы
Cabral
Experincia:
2 anos coordenador de
assistncia tcnica e
consultoria comercial.
7 anos em desenvolvimento
freelance em tecnologias web
1 ano em consultor GED
E agora estou como
Coordenador de Projetos Cloud
do Grupo Soitic
Falaremos sobre o
que?
DDD!
O que DDD?
O que DDD?
1. Compreendendo o Domnio.
2. Linguagem ubqua.
3. Contexts and Bounded Contexts.
4. Entities and Value Objects.
5. Aggregates and Aggregate Roots.
6. Persistence Ignorance.
7. Repository.
8. Domain Service.
Compreendendo o
domnio
Compreendendo o domnio
Compreendendo o domnio
Vamos dizer que voc est contratado para projetar um Edifcio. O
requisito :
Voc tem uma quantidade definida de terra. Seu edifcio ter 6
andares. Cada andar ter 4 apartamentos.
Qual o seu domnio aqui?
O domnio o Edifcio(?). Poderia ser. Mas observe que, se voc
considerar Edifcio como seu domnio voc pode perder alguns
detalhes granulares para sua exigncia. O edifcio que voc est indo
para a concepo deve ter o projeto para apartamentos onde as
pessoas iro viver.
Compreendendo o domnio
Assim, um termo geral "Edifcio" pode fazer-nos perder alguns
detalhes. Assim, podemos diminuir o nosso domnio para "Edifcio
Residencial".
Agora, quando voc fala sobre o seu trabalho com os engenheiros e
tambm com as pessoas que voc engajados para projetar o edifcio,
o termo " Edifcio Residencial" mais significativo para todos os
envolvidos. Percebeu a pequena mudana na linguagem aqui? O
empreiteiro est dizendo a voc para projetar um edifcio onde
haver 4 apartamentos em cada um dos 6 andares. Agora, se voc
enviar um engenheiro ao local dizendo que vamos precisar para
construir um edifcio l, eles podem no considerar vrios atributos
que um edifcio residencial deve ter. Por outro lado, se voc usar o
termo " Edifcio Residencial", o mais provvel que ele vir com uma
anlise vlida.
Assim chegamos a uma "linguagem ubqua".
Linguagem ubqua
Linguagem Ubqua
EXEMPLO 1:
Errado:
A proporo entre comprimento e largura dos menores
cmodos so de 6:4.
Correto:
Comprimento do quarto das crianas ser de 6 metros
e largura ser de 4 metros.
Linguagem Ubqua
Vamos voltar ao nosso domnio "Edifcio Residencial". Olha, voc
pode prosseguir com o projeto de construo residencial como uma
nica tarefa e resolver a coisa toda em conjunto. Mas ser realmente
maneira sensata a fazer? Note que, se voc considerar apenas este
uma nica unidade de trabalho, voc pode perder muitas coisas.
Projetando um edifcio est relacionada com tantas coisas. Por
exemplo:
voc
precisa
considerar
ventilao,
utilidade,
estacionamento, espao da comunidade etc.
Agora voc v, diferentes contextos outros esto chegando. Esta a
forma como o conceito de "Context" e "Bounded Context" que surge
em Domain Driven Design.
Context e Bound
Contexts
O que BBOM?
O que BBOM?
Uma grande bola de lama (Big Ball of mud) uma forma
de estrutura anrquica, esparramada, desleixada, a selva
do cdigo espaguete. Estes sistemas mostram sinais
inequvocos de crescimento descontrolado, e repetida. A
informao
partilhada
promiscuamente
entre
elementos distantes do sistema, muitas vezes ao ponto
onde quase todas as informaes importantes torna-se
global ou duplicados. A estrutura geral do sistema pode
nunca ter sido bem definido.
O que BBOM?
Nosso objetivo todo o tempo deve ser o de evitar BBOM.
Novamente com o "Domnio: Edifcio Residencial". Ns
poderamos ter vrios contextos delimitadas:
Fornecimento de electricidade
Estacionamento
Apartamento
Etc.
Pergunta!
Pergunta!
Entity.
Value Object.
Aggregates & Aggregate root.
Entidade
Entidade
"Esta a minha entidade, existem muitos como ele, mas este o
meu."
A caracterstica definidora chave de uma entidade que ele tem
uma identidade - nico dentro do sistema, e nenhuma outra
entidade, no importa o quo semelhante, a mesma entidade a
menos que tenha a mesma identidade.
Exemplos:
Objeto de valor
Objeto de valor
A caracterstica definidora chave de um objeto de valor que
no tem identidade. Ok, talvez um pouco simplista, mas a
inteno de um objeto de valor representar algo apenas por
seus atributos. Dois objetos de valor podem ter seus atributos
iguais, nesse caso eles so idnticos. Eles no tm qualquer
valor que no seja em virtude de seus atributos. Outro aspecto
comum aos objetos de valor que eles devem provavelmente
ser imutveis, uma vez criados, eles no podem ser alterados.
Voc pode criar um novo, e como eles no tm identidade, que
exatamente oExemplo:
mesmo que mudar para outra.
Objeto de valor
Agora voc sabe o que entidade , e o que o objeto de valor
no DDD. Nas entidades em DDD, objetos de valor podem existir
de forma independente. Mas, em alguns casos, a relao pode
ser tal que, uma entidade ou OV no tem valor sem o seu
contexto.
Exemplo:
Aggregate e
Aggregate Root