Ter escalabilidade, independência e resiliência depende de muito mais da forma como você implementa do que ter uma arquitetura monolítica ou de microservices
Talvez essa seja a pergunta mais feita pelos alunos durante o curso de Clean Architecture e ela não tem uma resposta única, então acompanhe as reflexões que me levam a responder a essa pergunta
Muito do que acreditamos ser uma decisão de arquitetura na verdade tem relação apenas com o design
Os Value Objects são fundamentais para a construção de um Domain Model consistente em um design orientado a objetos
Esses são os livros que eu recomendo sobre Design e Arquitetura de Software
Um dos 5 princípios do SOLID é a inversão de dependência, mas qual é a diferença dela para a Injeção de Dependência que todo mundo conhece?
Entender o domínio e as formas de separá-lo em partes menores é fundamental para evitar o Big Ball of Mud
Talvez o padrão Repository seja um dos mais utilizados e ao mesmo tempo menos compreendidos
Talvez este princípio seja um dos menos entendidos, mas que ao mesmo tempo tem um impacto muito positivo no design orientado a objetos
O OCP é o princípio base para criar um design mais extensível e manutenível, preservando o código existente e isolando as diferenças entre comportamentos
O padrão Prototype é muito útil quando precisamos copiar determinados objetos, sem a necessidade de aumentar o acoplamento com ele
O padrão Flyweight é uma excelente forma de reduzir o consumo de memória de um programa orientado a objetos
Independente do tipo, se é de unidade ou integração, os testes automatizados tem um papel fundamental na produtividade e principalmente na confiabilidade do código que estamos escrevendo no dia a dia