Acaba de chegar às bancas a edição 57 da .Net Magazine com meu artigo de introdução ao Domain Driven Design. Esse foi um artigo muito legal de escrever, porque me fez, depois de bastante tempo trabalhando com DDD, voltar às raízes e revisar o DDD conceitualmente, o que me ajudou a relembrar e clarificar alguns assuntos. É claro que não dá para entender DDD de ponta a ponta em 10 páginas de revista, mas dá para você ter uma boa idéia do que é DDD. No último encontro do grupo .Net Architects eu falei que o artigo estava para sair, e recomendei que todos dessem uma lida para se preparar para a próxima reunião, onde vou abordar aspectos práticos e experiências que vivi com o DDD.
Não posso infelizmente publicar o artigo aqui, mas posso adiantar um pouco do material que está na revista, por exemplo, aqui está o modelo de camadas proposto pelo DDD. Esse desenho, por si só, já tira muitas das dúvidas.
– Minha camada de interface pode falar com a camada de infra-estrutura?
– Pode.
– E minha camada de domínio, conhece a camada de interface?
– Não, de jeito nenhum.
– Mas o domínio conhece quem?
– Ninguém, mas todas as outras camadas provavelmente o conhecem.
– Se eu tiver um serviço na camada de aplicação, ele pode falar com a camada de infra?
– Oras, claro, porque não?
E outras dúvidas parecidas…
Já essa outra figura, mostra duas entidades (carga e itinerário), um serviço (de agendamento), e uma especificação (de rota). E dá para entender um pouco como eles interagem a partir da figura.
Eu gosto bastante do conceito de especificação. É o tipo de conceito que ajuda muito quando você aprende a usar, e cada vez que usa aprende um pouco mais sobre o ele. Definitivamente recomendo a exploração desse conceito tão pouco utilizado.
Enfim, se você quer dar uma olhada em uma das abordagens mais interessantes hoje para o desenvolvimento de aplicações complexas, compre a revista e dê uma lida nessa introdução ao DDD. Mês que vem eu sigo no assunto, mas com um artigo mais prático, que ficou bem legal.
Giovanni Bassi
Arquiteto e desenvolvedor, agilista, escalador, provocador. É fundador e CSA da Lambda3. Programa porque gosta. Acredita que pessoas autogerenciadas funcionam melhor e por acreditar que heterarquia é mais eficiente que hierarquia. Foi reconhecido Microsoft MVP há mais de dez anos, dos mais de vinte que atua no mercado. Já palestrou sobre .NET, Rust, microsserviços, JavaScript, TypeScript, Ruby, Node.js, Frontend e Backend, Agile, etc, no Brasil, e no exterior. Liderou grupos de usuários em assuntos como arquitetura de software, Docker, e .NET.