terça-feira, 6 de junho de 2017

O que é e porque devo me preocupar com DDD?



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ê!

2 comentários:

  1. 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.".
    DDD é 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.

    ResponderExcluir
  2. Sim... DDD é um caminho sem volta mesmo. :)
    Sobre 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!

    ResponderExcluir