Código como transmissor de conhecimento

Escrever código de forma clara é uma tarefa difícil.

Neste artigo, veremos algumas sugestões de como escrever código de negócio de uma forma que ele “fale a língua do domínio”, comunicando seu propósito para o time de desenvolvimento e também para os domain experts.

PERSIGA A LINGUAGEM UBÍQUA

A Linguagem Ubíqua (Ubiquitous Language), termo oriundo do Domain-Driven Design, é uma linguagem estabelecida entre o time de desenvolvimento e domain experts, de forma que haja uma comunicação clara entre todos (sem “tecniquês” e mais focada no negócio).

Os termos dessa linguagem devem se refletir no código, de forma que não sejam necessárias traduções do mesmo para a linguagem usada com os especialistas de negócio. Sendo assim, se “Política de Retenção de Clientes” é um termo empregado no seu domínio atual, não há porque inventar outro termo para colocar no código. Continue lendo

Anúncios

Domain-Driven Design Rápido e Rasteiro (re-post)

ATENÇÃO: este artigo foi originalmente publicado há 2 anos em outro blog. Abaixo, segue o mesmo, sem nenhuma alteração em relação ao original. Além do conteúdo citado no artigo, se quiser saber mais, dê uma olhada na <<live que fizemos no mês passado>>.
____________________________________________________

Olá, pessoal

Trago para vocês, neste artigo, uma rápida introdução ao Domain-Driven Design, conceito criado por Eric Evans e consolidado em seu famoso livro azul “Domain-Driven Design – Tackling Complexity in the Heart of Software”, de 2003.

O assunto é bem denso e impossível de ser tratado em detalhes em um simples artigo de blog. Portanto, espero que este sirva ao menos como um start para futuros estudos sobre o tema (vale a pena!).

Boa leitura! Continue lendo »

Um bate-papo sobre DDD

Cara, estou trabalhando num projeto DDD!!

“Projeto DDD”? Bacana. Que negócio é esse?

Então…. tem uma separação em 4 camadas (Presentation, Application, Domain e Infrastructure) e um negócio de manter o ‘Domain’ separado de detalhes técnicos, como persistência.

Hmmm..arquitetura em camadas…e o que mais?

Uma série de patterns legais, como Value Object, Repository e Dependency Injection. Está sendo um desafio e tanto configurar tudo certinho no container de DI. Dá um certo trabalho entender com isso funciona. Continue lendo »

Lógica de negócio vs lógica de aplicação

Olá, pessoal!

Quando começamos a trabalhar com a camada de aplicação, popularizada nos últimos anos pelo Domain-Driven Design, ficam dúvidas sobre sua verdadeira função e sobre qual código devemos colocar nela. Escrevi dois artigos anteriormente que ajudam a elucidar essas questões <<aqui>> e <<aqui>>.

Neste terceiro, mostro uma divisão mais clara entre lógica de negócio e lógica de aplicação e algumas dicas para não confundirmos as duas. Espero que gostem! Continue lendo »