Capitulo 1 Flashcards
o que DDD pode fazer para seus projetos e suas equipes a fim de ajudá-lo a lidar com a complexidade do domínio?
- Especialistas de domínio terão que ouvir você, eles não sabem tudo
- Desenvolver um software que reflete o modelo mental dos especialistas de negócio
- Foco na estratégia de negócio e não na análise técnica
- Codificação correta do modelo mental dos especialistas de domínio, de forma altamente testável e escalável
Como classificar o seu projeto para saber se merece o DDD
- Use DDD somente para simplicar algo complexo, nunca para complicar algo simples
- Somar 7 pontos no scoreboard 1.1 (em geral, quando possui complexidade ou é provável que tenha com o passar do tempo).
O que é Domínio Básico e Subdomínio de Suporte?
Domínio Básico é o que não pode ser facilmente substituivel, o que não é trivial
Subdomínio de suporte são domínios secundários significativos
Alternativas comum ao DDD
Modelo de Domínio Anêmico
Fundações do DDD e quais os primeiros passos no projeto
Linguagem Úbiqua; Contexto Delimitado; Mapa de Contexto
Primeiros passos:
Procurando as frases que a equipe fala, literalmente, e as documentando de alguma forma.
Desenhe imagens do domínio físico e conceitual e rotule-as com nomes a ação.
Crie um glossário de termos. Incluindo as que não são mais utilizadas, explicando porque.
O modelo de software incorpora os substantivos, adjetivos, verbos e expressões mais ricos que são falados pela equipe.
Como vender o DDD
A organização ganha um modelo útil do seu domínio
Uma defninição e um entendimento precisos e refinados do negócio são desenvolvidos
Os especialistas em Domínio contribuem para o projeto de software
Uma melhor experiência do usuário é alcançada
Limites claros são colocados em torno de modelos puros
A arquitetura corporativa é mais bem organizada
Modelagem ágil iterativa e contínua é usada
Novas ferramentas, tanto estratégicas como táticas são empregados
Qual o problema com o Modelo de Domínio Anêmico
Paga um custo de desenvolvimento pra elaborar um ‘modelo’ que não agrega valor nenhum, apenas é uma replicação do banco de dados.
Por que a anemia acontece
Pessoas que copiam códigos de amostra
Influencia do Visual Basic, que criava aplicações apenas preenchendo formulários
Java Hibernate obrigava a exposição de getter e setters para popular os javabeans
O que a anemia faz para o seu modelo
Esconde regras de negócio em um ‘serviço de aplicação’ impostor.
Um método ‘save’, ele salva sob que circunstâncias? Normalmente todas, não expõe a intenção.
Especialistas em domínio não podem ajudar porque teriam que ser programadores para entender o código.
- Pouca intenção revelada pela interface
- A implementação de save adiciona complexidade oculta
- o ‘objeto de domínio’ não é um objeto. De fato é apenas um contêiner de dados burro.
Qual o papel de diagramas no DDD
Não documentar, apenas uma maneira de descutir os desafios do modelo.
O que é Linguagem Úbiqua
Uma linguagem desenvolvida por equipe técnica e especialistas de domínio.
O que é Contexto Delimitado quanto a Linguagem Úbiqua
É o contexto que delimita o significado da liguagem
Defina a vantagem: a organização ganha um modelo útil do seu domínio
DDD foca no que é mais importante para o negócio e o que tem pra oferecer de diferente.
Focando no domínio básico nosso modelo terá mais utilidade.
Defina a vantagem: uma definição e um entendimento precisos e refinados do negócio são desenvolvidos
Aparecem detalhes da mente dos especialistas em Domínio quando você é desafiado por outro e modelado pela equipe técnica.
Algumas empresas conseguiram compreender-se melhor após utilizarem a Linguagem Ubíqua
Defina a vantagem: os especialistas em Domínio contribuem para o projeto de software
Todas se beneficiam mais da transferência de conhecimento
Além de criar um consenso entre EDs