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 »

CQRS, interfaces, queries, ORMs….cuidado!

Olá, pessoal

Neste artigo, veremos um pouco de CQRS, alguns erros cometidos e lições aprendidas em minhas primeiras incursões a este padrão.

Espero que sirva de alerta para os marinheiros de primeira viagem quanto a algumas escolhas de design e ferramentas.

Vamos lá!

CQRS – UMA BREVE INTRODUÇÃO

CQRS (Command/Query Responsibility Segregation) é um padrão cuja ideia basicamente consiste em quebrar um objeto – composto de comandos (commands) e consultas (queries) – em dois objetos, um somente com comandos e outro somente com consultas. 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 »

Meu talk no AgileTrends

No último sábado, dia 05/12, foi realizada uma edição do evento nacional Agile Trends pela primeira vez aqui em Campo Grande/MS.

Eu estive presente palestrando, juntamente com outros nomes locais e de fora. Foi um desafio inédito realizar um talk de apenas 18 minutos. Acabei gerenciando mal esse tempo e o final do talk acabou ficando apressado demais. Outro detalhe é que eu ainda não consigo ser 100% “eu” quando estou palestrando, mas eu chego lá.

Quanto ao evento, fiquei surpreso por haver 150 inscritos e profissionais de diversas empresas diferentes. Progresso! Continue lendo »

Implementando serviços de aplicação transacionais

Olá, pessoal

Neste artigo, voltamos aos serviços de aplicação, mostrando uma forma de implementá-los com o controle transacional, de um modo totalmente extensível.

Caso ainda não tenha feito, recomendo a leitura <deste post> – sobre a camada de aplicação – para melhor contextualizá-lo sobre onde os serviços de aplicação se encaixam em uma arquitetura em camadas.

Vale ressaltar que veremos uma solução baseada em “CommandHandlers” para lidar com serviços que executam alguma ação que altere o estado do sistema. Nenhuma solução referente às consultas da aplicação será mostrada.

Vamos lá! Continue lendo »