Em síntese, o Domain Driven Design (DDD) se revela não apenas como uma metodologia técnica, mas como uma estrutura de conceitos que transcende a construção de software, buscando alinhar a linguagem do código à linguagem do negócio. Ao enfatizar assertivas nos testes de unidade, conforme preconizado por visionários como Eric Evans e Vaughn Vernon, o DDD não só fortalece a estabilidade do sistema, mas também se torna uma ferramenta essencial para a comunicação efetiva das intenções do código. A ênfase na clareza, intencionalidade e na criação de código isento de efeitos colaterais não apenas valida requisitos de negócio, mas também estabelece uma documentação dinâmica que destaca as nuances das operações e propicia a evolução sustentável do software.
Tag: Domain Driven Design
Operações isentas de efeitos colaterais
Num cenário onde o código fonte é a espinha dorsal do desenvolvimento de software, compreender a natureza dos comandos, consultas e funções é algo realmente relevante. O artigo Operações isentas de efeitos colaterais delineou as características distintivas dessas operações, desde os comandos que moldam ativamente o estado do sistema até as consultas que se mantêm como observadoras passivas. Abraçando os princípios do Domain-Driven Design (DDD), exploramos estratégias para mitigar os desafios associados a efeitos colaterais e explosões combinatórias, oferecendo um guia para o desenvolvimento de sistemas mais claros e resilientes.
Interfaces reveladoras de intenções
A essência de construir software significativo: a clareza nas intenções. A fundamentação de Interfaces Reveladoras de Intenções revela-se não apenas como uma prática técnica, mas como um compromisso fundamental com a comunicação eficaz entre o domínio e o código. A clareza nas intenções, desde os nomes das classes até a construção de interfaces, não é uma mera formalidade, mas uma estratatégia consistente para redução da sobrecarga cognitiva, garantindo a longedidade do sistema. Ao abraçar abstrações claras, explicitar conceitos implícitos e adotar práticas como TDD e BDD, fortalecemos não apenas a robustez do código, mas também a capacidade de evolução do software.
Top 25 Ferramentas do Hadoop
O Hadoop é o pai do bigdata. Ele possui um ecossistema próprio com diversas ferramentas com propósitos diferentes. Aqui em Top 25 Ferramentas do Hadoop vamos dar uma visão geral sobre diversas dessas, tais como Hive, Pig, Sqoop, Kafka, Zookeeper. Note que nem todas essas ferramentas são dependentes do Hadoop, mas são relevantes para o ecossistema e por isso aparecem na lista.
Os 14 tipos de bancos de dados
Nada impede de amanhã um novo tipo de banco de dados ganhar força, tendo em vista a variedade de dados que é crescente nos tempos atuais. Note que alguns desses bancos suportam múltiplos conceitos ao mesmo tempo. Mas ao final de tudo, analise com cuidado considerando as necessidades tecnológicas, as necessidades de negócio/custo, e as capacidades do time na hora de decidir por utilizar um tipo ou outro.
Notification Pattern no DDD
O artigo Notification Pattern no DDD é interessante mas levanta algumas questões importantes sobre o design de código. Não é raro encontrar desenvolvedores defendendo que ele deveria ser utilizado para tudo eliminando o uso de exceptions. Por outro lado, há uma outra corrente que usa exceptions para todas as validações de negócio. Particularmente prefiro um caminho intermediário, utilizando as exceptions que interrompem o fluxo do código quando isso é fundamnetal, caso contrário entidades poderiam ficar não estáveis. Mas também utilizando o notification pattern para validações simples de entidades e quando há a construção de entidades complexas. Bom, o artigo mostrou exemplos e sobrevoou essa polêmica.
Mediator Pattern no Domain Driven Design
O padrão mediator é relativamente simples de entender mas pode se tornar complexo de manter. Além disso ele é muito conveniente quando se trabalha com Domain Driven Design. Assim é possível isolar agregados e garantir comunicação entre eles sem acoplamento: Entenda que isso independe se utiliza-se arquitetura monolitica ou de microserviços. Desse modo o artigo Mediator Pattern no Domain Driven Design demonstrou cenários práticos, diferenetes formas de implementar, com frameworks de terceiros ou sem. Embora os exemplos estejam em C#, eles são facilmente compreensíveis e portáveis para outras plataformas ou linguagens.
Domain Service no Domain Driven Design
O padrão tático Domain Service é amplamente utilizado no mercado mas é bem comum ver que ele não segue as recomendações do DDD de maneira não intencional. Assim, o artigo explica como o conceito Domain Service é aplicado no mercado e aplicado no DDD em si. Após isso o vemos em detalhes e por fim vemos uma pequena implementação real de seu uso.
Specification Pattern no Domain Driven Design
O domínio da aplicação deve ser sempre preservado, de modo que mudanças não o alterem e não impacte em testes. O artigo dá exemplos práticos de como pode-se utilizar esse padrão para leis, normas etc, especialmente aplicável em estruturas que precisam funcionar em conformidade. Definitivamente o padrão de especificações é muito flexível e uma boa prática.
Modelando o Context map do zero
Modelando em 7 passos no VSCode: Veja um exemplo de uma corretora de criptomoedas do absoluto zero, passando por event storming, mapeando dos sub-domínios, relacionando contextos até chegar ao diagrama de contexto feito sob medida no Visual Studio Code.