Esse artigo faz parte da revista .NET Magazine edição 57. Clique aqui para ler todos os artigos desta edição

 

ER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 431.4pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" vAlign=top width=575>

Neste artigo veremos

·         Domain Driven Design.

Qual a finalidade

·         Demonstrar uma das abordagens para arquitetura de software mais poderosas do momento.

Quais situações utilizam esses recursos?

·         Aplicações de média a alta complexidade, com muitas regras de negócio são as que mais se beneficiarão do Domain Driven Design.

 

Resumo do DevMan

O Domain Driven Design (DDD) é uma abordagem poderosa para o desenvolvimento de software, que aliada à orientação a objetos lhe entrega um grande poder para a criação de aplicações. É um dos grandes instrumentos disponíveis para a criação de aplicações corporativas de alta qualidade, performance, e  manutenibilidade. Veja neste artigo seus conceitos básicos e entenda do que trata esse tão falado assunto.

 

Quando eu comecei no desenvolvimento de software tudo o que eu queria era uma “fórmula mágica” que me explicasse qual a melhor maneira de construir um aplicativo. Conforme fui ganhando experiência fui descobrindo que, para minha infelicidade, isso não existia. Era como a “fórmula do sucesso”: não existe. Comprar um livro ou ler um artigo que tenha essa pretensão é como ler aqueles livros “fique rico em 10 lições”, ou seja, serve mais para criar esperanças do que para atingir realmente o objetivo pretendido.

Neste artigo não vou dar uma fórmula para o sucesso no desenvolvimento de aplicações. Mas vou apresentar, em explanações objetivas e com exemplos, um assunto que comprovadamente, lhe colocará no caminho correto: o DDD.

O DDD, ou Domain Driven Design, ou ainda, em português, desenho direcionado ao domínio, é uma abordagem para o desenvolvimento de software comprovadamente capaz de construir aplicações com todas aquelas características desejáveis que sempre ouvimos falar: extensível, escalável, confiável, segura, fácil de manter, fácil de utilizar, flexível, inteligível, e que atende aos requisitos demandados.

Este artigo não tem a pretensão de abordar todos os assuntos compreendidos pelo DDD, ou mesmo esgotar os assuntos abordados. O objetivo é explicar os conceitos básicos dessa abordagem e passar uma compreensão inicial para que você possa, se gostar do assunto, aprofundar-se mais, seja através da leitura de livros, ou aqui na .Net Magazine e na Engenharia de Software Magazine. Se você gostar do assunto não deixe de acompanhar a .Net Magazine, já que continuaremos tratando de DDD nas edições futuras.

 

O que é o DDD

O DDD é uma abordagem para o desenvolvimento de software. Ele foi criado por Eric Evans e teve o pontapé inicial com a publicação do seu livro Domain-Driven Design – Tackling Complexity in the heart of software (Desenho direcionado ao domínio – atacando a complexidade no coração do software, editora Addison Wesley, 529 páginas). Talvez “compilado” seja um termo melhor do que criado, uma vez que o DDD agrega muitas informações que já existiam na engenharia e arquitetura de software, como, por exemplo, o padrão de arquitetura Domain Model, apresentado por Martin Fowler, autor reconhecido de vários livros igualmente importantes. Martin Fowler chama o DDD em seu site martinfowler.com de “o padrão de lógica de domínio mais sofisticado e o que é mais indicado para lógicas complexas”.

Não acredito e nem procuro mais “fórmulas mágicas”, mas de vez em quando, algumas empresas me pedem este Santo Graal, e quando isso acontece sugiro a leitura do livro do Evans, para começar. Ao longo da leitura, descobre-se que a fórmula mágica não existe, mas isso passa a não ser mais um problema. Sem dúvida quando os desenvolvedores conhecem DDD, meu trabalho de montagem da arquitetura fica muito facilitado, já que sei que o time já teve contato com ótimas práticas de desenvolvimento, e podemos partir daí. O DDD é uma ferramenta tão formidável, que normalmente os desenvolvedores que começam a trabalhar com DDD dificilmente a abandonam.

 

Nota: Antes de irmos em frente tenho dois termos a esclarecer:

1) Em inglês, a palavra “design” não tem somente o significado que geralmente aplicamos a ela em português, que é ligado a design gráfico. Significa também desenho da arquitetura de software ou da solução. Sempre que eu mencionar “design” ou “desenho”, ao longo do artigo, entenda neste sentido, e não como design gráfico.

2) O termo “domínio” significa a área de negócio do aplicativo que é objetivo do software. Em um software que controla, por exemplo, o movimento de um estacionamento, este é o domínio: o controle de entrada e saída dos carros, a cobrança, e os processos relacionados.

 

Há duas premissas principais no DDD:

1.     Para a maioria dos projetos de software o foco principal deve ser no domínio e na lógica do domínio;

2. ...

Quer ler esse conteúdo completo? Tenha acesso completo