DDD significa Domain Driven
Design, ou em português: Desenvolvimento Dirigido
ao Domínio. A ideia é orientar todo o processo de arquitetura e modelagem do software,
única e exclusivamente ao Domínio do negócio ao qual o software deverá atender.
Ou seja, o DDD te força a manter o foco no Problema à ser resolvido, e não na
forma como será implementada a Solução. Domain Driven Design
é uma filosofia.
O termo DDD e as principais ideias que o permeiam, foram cunhadas
por um sujeito chamado Eric Evans, no livro Domain Driven Design – Atacando a
complexidade no coração do software.
Esse livro está para a Orientação
à Objetos assim como o livro Análise Estruturada Moderna de Edward Yourdon, esteve para Análise e
Desenvolvimento de Sistemas nas décadas de 70, 80 e 90. Décadas que antecederam à
popularização das Linguagens Orientadas à Objetos.
Se existe uma forma correta de
arquitetar e modelar software com a Orientação à Objetos, é através do Domain
Driven Design. Eric Evans sugere o seguinte Mapa para expor os elementos do
DDD, e como eles se relacionam:
Não vou entrar nos detalhes do DDD nesse artigo, isso ficará parar os próximos. Mas tem uma coisa que é
importante deixar claro aqui:
Porque devo me preocupar com DDD?
Tenha em mente que o objetivo do
DDD é elevar ao máximo a tempo de vida da sua aplicação, e garantir a qualidade
do código que deu origem a ela.
Pense no DDD como a melhor forma para
preservar o código que você escreve, para que ele sobreviva o máximo possível ao tempo, às novas tecnologias, aos requisitos que não foram previstos, e à uma
das variáveis mais impactantes no tempo de vida do software, você!
Essa afirmação é forte: "Se existe uma forma correta de arquitetar e modelar software com a Orientação à Objetos, é através do Domain Driven Design.".
ResponderExcluirDDD é uma prática que quero adotar no meu próximo projeto. E já estou sentindo que não vou mais conseguir fazer software sem DDD depois que eu começar.
Sim... DDD é um caminho sem volta mesmo. :)
ResponderExcluirSobre a afirmação, é forte mesmo, mas você vai notar que é bem flexível com relação aos padrões que você irá adotar, e como implementá-los.
Fique atento que tenho uma longa série de artigos sobre DDD para publicar aqui.
Abraço!