No Coração do Software: DDD- PARTE 2
Capítulo 2: Comunicação e uso da linguagem
No Capítulo 2, Eric Evans introduz o conceito de "Linguagem Ubíqua", um elemento central no Design Orientado a Domínio (DDD). Este conceito enfatiza a importância de uma linguagem comum e clara que seja usada por todos os membros da equipe de desenvolvimento e pelos especialistas no domínio para garantir um entendimento compartilhado e preciso do modelo de domínio.
Principais ideias:
A Linguagem Ubíqua é uma linguagem compartilhada que descreve o modelo de domínio de forma precisa e consistente. Ela deve ser usada em todos os níveis de comunicação, desde discussões informais até a implementação técnica.
Deve refletir diretamente o entendimento do domínio, utilizando termos e conceitos específicos do domínio que são compreendidos por todos os stakeholders.
Todos os artefatos de software, incluindo código-fonte, documentação, testes e diagramas de arquitetura, devem usar a Linguagem Ubíqua. Isso inclui nomear classes, métodos, variáveis e outras estruturas de forma que reflitam diretamente os conceitos do domínio.
A linguagem deve ser evolutiva, mudando à medida que o entendimento do domínio se aprofunda. Refatorações frequentes podem ser necessárias para alinhar o código com a linguagem atualizada.
Recomendados pelo LinkedIn
O uso de uma linguagem comum melhora significativamente a comunicação entre desenvolvedores, analistas de negócios e especialistas no domínio, reduzindo ambiguidades e mal-entendidos.
Promove um melhor alinhamento entre a implementação técnica e os requisitos de negócios, assegurando que o software desenvolvido atenda às necessidades do domínio.
Evans fornece exemplos práticos de como incorporar a Linguagem Ubíqua no código. Por exemplo, em vez de usar nomes genéricos ou técnicos, classes e métodos devem ser nomeados de acordo com os termos do domínio. Uma classe que representa um "Pedido" deve ser chamada de Pedido e conter métodos como adicionarItem ou removerItem.
Realizar reuniões regulares entre desenvolvedores e especialistas no domínio é essencial para refinar e evoluir a Linguagem Ubíqua. Durante essas reuniões, novas descobertas e entendimentos são incorporados na linguagem e no modelo.
Facilita a colaboração entre equipes multidisciplinares, promovendo um entendimento comum do domínio.Aumenta a qualidade do software ao garantir que o código reflita com precisão os requisitos de negócios. O uso de uma linguagem clara e específica ajuda na manutenção e evolução do software.Reduz a curva de aprendizado para novos membros da equipe, já que a linguagem do código e da documentação é consistente e alinhada com o domínio.
Conclusão:
O Capítulo 2 destaca que uma Linguagem Ubíqua bem-definida é crucial para o sucesso do Design Orientado a Domínio. Ela serve como uma ponte entre os requisitos de negócios e a implementação técnica, garantindo que todos os envolvidos no projeto compartilhem uma visão comum e clara do domínio. Isso não só melhora a comunicação e colaboração, mas também assegura que o software desenvolvido seja robusto, flexível e alinhado com as necessidades do negócio.