Como é Domain Driven design diferente de apenas usando uma especificação?
-
21-08-2019 - |
Pergunta
Eu li que Domain Driven projeto é sobre concentrando-se no domínio do problema, em vez de se concentrar no software. Eles dizem que é mais fácil para resolver as complexidades do domínio do problema do que as complexidades do software, porque depois de ter resolvido o domínio, você sabe melhor como construir o software também. Além disso, eles dizem que, na verdade, o domínio é mais complexa do que as estruturas do software ou de que se você não ver a floresta da floresta, você está em apuros.
Mas como é Domain Driven design diferente de apenas usando uma especificação para o software? Quero dizer, é claro que deve ficar a conhecer o domínio do problema antes de iniciar a codificação. DDD é reinventar a roda?
Solução
Domínio-driven é mais sobre o estabelecimento de um modelo comum do mundo (e uma linguagem comum associada) que você e os peritos do domínio podem usar.
Em teoria, isso significa que os desenvolvedores podem escrever código que lê como uma descrição do domínio do problema, e especialistas de domínio pode olhar sobre os ombros dos desenvolvedores e ver o que está acontecendo.
A especificação não faz tais promessas sobre uma linguagem comum ou modelo do mundo, ele apenas diz "vamos construir algo específico". O modelo de classes altamente especificado que você venha com o trabalho força, mas pode não refletir a 'realidade' particularmente bem.
Há um bom livro gratuito no Domain-Driven Design aqui (Login necessário infelizmente).