Projetos eficazes têm sido o assunto do momento! Mas você já ouviu falar que muitos dos softwares desenvolvidos para empresas se tornam obsoletos muito rápido, ou então não correspondem à aplicação

Isso é muito comum quando não se tem um bom relacionamento entre desenvolvedores e especialistas na aplicação, e é aí que o Domain Driven Design entra!

Neste artigo você vai descobrir o que é o Domain Driven Design e seus principais pilares para a implementação de projetos de software de sucesso! Neste artigo veremos:

  • O que é Domain Driven Design;

  • Linguagem Ubíqua;

  • O que é domínio;

  • O que é modelo;

  • Para que serve o modelo;

  • 5 passos para um modelo bem sucedido.

 

O que é Domain Driven Design

Domain Driven Design significa Design Orientado a Domínio. Mas o que exatamente isso quer dizer?

O Domain Driven Design, ou DDD como também é conhecido, é um conjunto de princípios e práticas com o foco em estabelecer uma comunicação eficiente entre especialistas do domínio (especialistas da área, usuários, analistas) e desenvolvedores de software para a construção de uma aplicação que atenda as necessidades do cliente.

A chave para o DDD é a comunicação. Seu objetivo é ajudar os times de desenvolvimento a entender o contexto do projeto, para assim produzirem um produto final de mais qualidade e que atenda a expectativa do cliente gerando maior satisfação.

Para quem não sabia do que se tratava o termo até este artigo, é importante ressaltar que ele não é uma nova linguagem de programação, é apenas um conjunto de ensinamentos para simplificar o processo de desenvolvimento de software e se obter mais êxito no produto final.

O termo surgiu do título de um livro escrito por Eric Evans intitulado “Domain-Driven Design: Tackling Complexity in the Heart of Software”,  que traz seus 20 anos de experiência em desenvolvimento de software utilizando técnicas de Orientação à Objetos. 

Mas como será que eles, desenvolvedores e especialistas, conseguem se entender? Esse é o assunto do nosso próximo tópico, mas antes quero te dar uma dica!

 

Se você gosta de estudar temas de tecnologia e inovação deve saber que muitas das grandes empresas de inovação utilizam Metodologias Ágeis para desenvolver e otimizar seus projetos. Então, para você que se interessou por esse assunto e tem vontade de trabalhar em empresas inovadoras, preparamos para você um curso de Introdução ao Agile SCRUM, totalmente GRATUITO. Clique e conheça!

 

Curso de Introdução ao Agile SCRUM

 

Linguagem Ubíqua

 

A linguagem ubíqua é a linguagem geral, universal, falada no dia a dia da empresa

É a linguagem que utiliza as terminologias do negócio, ou seja, o glossário usado para aquela determinada aplicação. 

 

Linguagem Ubíqua

 

É usada para expor os conhecimentos dos especialistas no negócio para o código, ou modelo de domínio. Isto é, ela ajuda a contextualizar o negócio para todos os envolvidos.

É uma prática que muitos desenvolvedores ignoram, mas que é fundamental para que o software final seja acessível a todos, e que a aplicação seja desenvolvida exatamente como esperado pelo cliente.

Para nos aprofundar mais, vamos ver a definição de dois termos muito usados no contexto do DDD. Você sabe o que é domínio e modelo? Então, vamos ler mais.

 

O que é domínio?

 

O domínio é a razão da existência do software, muitos o chamam de coração do projeto.

Ele é baseado em um conjunto de conhecimentos, ideias e processos do negócio, ou seja são as atividades e o ramo de interesses dos usuários.

 

O que é modelo?

 

O modelo é uma interpretação da realidade. Ele simplifica e concentra-se somente nos pontos importantes para a resolução de problemas, desconsiderando fatos que não agregam a implementação.

O modelo vai sendo enriquecido a cada interação entre os os especialistas de domínio e a experiência da equipe técnica para que o produto final seja completo e entregue de acordo com as expectativas.

O DDD não se trata apenas de desenvolver o software e sim de entender a modelagem do problema como um todo, para que o desenvolvedores consigam dominar todas as nuances do projeto e fazer um modelo completo.

 

Para que serve um modelo?

 

Agora que você já sabe o que é o domínio e o modelo, vamos descobrir porque criar um modelo é tão importante.

 

  • Simplificação

O modelo é uma representação simplificada do projeto, assim é possível obter uma visão  menos complexa do negócio.

 

  • Assertividade

Desde de que feito de forma correta, o modelo assegura que a implementação ocorrerá da forma como foi especificada e que é esperada pelo cliente.

 

  • Comunicação

O modelo é a conexão entre desenvolvedores e especialistas do domínio. Permite que ambos consigam se comunicar e absorver tudo que é necessário para um projeto de qualidade.

 

  • Estruturação do conhecimento

O modelo é a forma como se estrutura o conhecimento extraído do domínio para que todos tenham acesso a ele, independente de sua especialidade no projeto.

 

  • Participação ativa da equipe

O modelo, junto com a linguagem ubíqua, permite que toda a equipe tenha acesso e consiga entender e interagir com o projeto, gerando coletividade e auxiliando na participação ativa de todos.
 

5 passos para um modelo bem sucedido

 

Neste tópico, iremos te mostrar 5 princípios indicados por EVANS, 2004, para um modelo efetivo.

 

1. Conexão

Um ponto muito importante de um projeto é que a implementação esteja totalmente alinhada ao modelo, ou seja, um deve ser o reflexo do outro. Neste ponto é importante ressaltar a conexão entre ambos, pois isso está diretamente ligado ao sucesso do projeto.

 

2. Modelo rico em conhecimento

Para que a implementação do modelo seja eficaz, não podemos ter um modelo anêmico. Ele deve absorver todo o conhecimento do domínio para ser capaz de devolver uma solução completa.

 

3. Linguagem baseada no modelo

É neste ponto que a linguagem ubíqua entra. É importante que tanto desenvolvedores quanto especialistas de domínio conheçam todos os termos relacionados ao projeto, estabeleçam uma comunicação eficiente e que não gere ambiguidades.

 

4. Refinar o modelo

O modelo deve ser estruturado somente com informações relevantes e pertinentes ao projeto. A cada interação entre desenvolvedores e especialistas o modelo deve ficar mais rico.

 

5. Brainstorming e experimentação

O brainstorming entre especialistas de domínio e desenvolvedores permite que trocas de conhecimento entre eles sejam aplicadas em experimentações para validar os tópicos do projeto.

 

Pronto para inovar?

 

Acompanhar as tendências em tecnologia é algo muito importante para quem quer se manter sempre no topo do mercado.

Umas das Linguagens de Programação mais utilizadas recentemente é o Python. É uma Linguagem reconhecida por ser versátil e permitir algoritmos mais estruturados.

Então, se você quer se aprofundar em projetos de software, um bom caminho é saber alguns fundamentos do Python, e vamos te ajudar nisso.

Preparamos para você um curso totalmente GRATUITO de Fundamentos Essenciais para Python. Clique e Aproveite!

 

Curso de Fundamentos Essenciais paraPython


 

Compartilhe com os amigos e se ficou alguma dúvida, deixe nos comentários.