Skip to content

Latest commit

 

History

History
11 lines (10 loc) · 11.7 KB

scorecard.md

File metadata and controls

11 lines (10 loc) · 11.7 KB

Scorecard do DDD

Seu projeto tem uma pontuação total de 7 pontos ou mais?
Se seu projeto Pontos Concepções de suporte
Se sua aplicação for completamente centrada em dados e se
qualificar verdadeiramente para uma solução CRUD pura,
em que cada operação é basicamente uma consulta simples
de banco de dados para criar, ler, atualizar ou excluir, você
não precisa do DDD. Sua equipe só precisa colocar um rosto
bonito em um editor de tabelas de banco de dados. Em outras
palavras, se você puder confiar no fato de que os usuários irão
inserir os dados diretamente em uma tabela, atualizá-los e, às
vezes, excluí-los, você nem mesmo precisará de uma interface
do usuário. Isso não é realista, mas é conceitualmente rele-
vante. Se pudesse usar uma ferramenta simples de desenvol-
vimento de banco de dados para criar uma solução, você não
desperdiçaria o tempo e dinheiro de sua empresa no DDD.
0 Isso parece óbvio, mas normalmente não é fácil determinar
simples versus complexo. Não é como se todas as aplicações
que não são CRUD puras merecem o tempo e o esforço
do uso do DDD. Assim, talvez possamos sugerir outros
indicadores para nos ajudar a traçar uma linha entre o que é
complexo e o que não é ...
Se seu sistema exigir apenas 30 ou menos operações de
negócio, ele provavelmente é bem simples. Isso significaria
que a aplicação não teria um total de mais de 30 histórias de
usuário ou fluxos de caso de uso, com cada um desses fluxos
tendo apenas uma lógica mínima de negócio. Se você puder
desenvolver rápida e facilmente esse tipo de aplicação usando
o Ruby on Rails ou o Groovy and Grails e não se importar
com a falta de poder e controle em relação à complexidade e
alteração, o sistema provavelmente não precisará usar o DDD.
1 Para ser claro, estou falando de 25 a 30 únicos métodos
de negócio, não de 25 a 30 interfaces de serviço comple-
tas, cada uma com vários métodos. O último pode ser
complexo.
Assim, digamos que, em algum lugar no intervalo entre 30 e
40 histórias de usuário ou fluxos de caso de uso, a comple-
xidade poderia ser pior. Seu sistema pode estar entrando no
território do DDD.
2 O risco é do comprador: Bem frequentemente a complexi-
dade não é reconhecida rapidamente. Nós, desenvolvedores
de software, somos realmente muito bons para subestimar
a complexidade e o nível de esforços. Só porque talvez
queiramos codificar uma aplicação no Rails ou Grails não
significa que devemos. No longo prazo, essas aplicações
poderiam prejudicar mais do que ajudar.
Mesmo que a aplicação não seja complexa agora, a comp exi-
dade dela aumentará? Você só pode saber isso ao certo depois
que os usuários reais começam a trabalhar com ela, mas há
um passo na coluna "Pensamentos de suporte" que pode
ajudar a revelar a situação real.
Tenha cuidado aqui. Se houver absolutamente qualquer indício
de que a aplicação tem complexidade mesmo moderada
— este
é um bom momento para ser paranoico —, isso pode ser uma
indicação suficiente de que ela na verdade será mais do que
noderadamente complexa. Incline-se em direção ao DDD.
3 Aqui vale a pena analisar os cenários de uso mais complexos com especialistas em domínio e ver aonde eles levam.
Os especialistas em domínio ...
1... . já estão solicitando recursos mais complexos? Se sim,
isso provavelmente é uma indicação de que a aplicação já é
ou em breve se tornará excessivamente complexa para usar
uma abordagem CRUD.
2....estão entediado com os recursos ao ponto em que
dificilmente vale a pena discuti-los? Provavelmente não é
complexa
Os recursos da aplicação serão alterados com requencla
longo de alguns anos, e você não pode antecipar que as altera-
cões serão simples.
4 O DDD pode ajudá-lo a gerenciar a complexi a e a refatoraçãode seu modelo ao longo do tempo.
Você não entende o Domínio (2) porque ele é novo. a
medida em que você e sua equipe sabem, ninguém fez isso
antes. Isso provavelmente significa que ele é complexo ou,
pelo menos, merece a devida diligência com análise analítica
*ra. determinar o nível de complexidade.
5 Você precisará trabalhar com especialistas em domínio e
testar os modelos para fazer a coisa certa. Você certamente
também pontuou em um ou mais dos critérios anteriores,
portanto, use o DDD.