O que aprendi ao criar um monolito seguindo boas praticas de DDD e Clean Architecture
Yan.ts
Posted on June 15, 2022
Depois de fazer um estudo mais aprofundado sobre monolitos foi a hora de eu implementar um usando as praticas que estudei, principalmente utilizando os conceitos de deixar os módulos bem separados para facilitar uma possível futura conversão para microsserviços.
O sistema
O sistema implementado com o intuito de estudos era uma espécie de e-commerce e seus eram produtos(na visão do admin), produtos(na visão do catalogo), pagamentos e clientes(na visão do admin) foi feito utilizando TDD ou seja, durante todo o desenvolvimento criei um teste para a feature que queria implementar e só depois implementei o método ou a classe.
Nesse caso de estudos o monolito foi feito com apenas um banco de dados para todos os módulos ao invés de um banco de dados por módulos
O que estranhei
Pra mim foi(e ainda é) muito estranho o fato de eu ter duas entidades de produto no mesmo sistema, não me entenda mal, eu entendo perfeitamente o porque dele estar ali "não é o mesmo produto" e cada modulo vê esse produto com o que é necessário para ele no contexto dele. Porem quando de fato chegou a hora de fazer isso:
Tive que me segurar muito para não simplesmente adicionar um novo campo a entidade que comecei e seguir com a vida, e falando em curto prazo essa solução até funcionaria, porem ao longo prazo que é como penso nesse sistema, algo feito para durar, o ideal é realmente fazer dessa forma pois cada entidade dessas de produtos tem as suas próprias razões para mudar e não podemos deixar que um interfira no outro.
Principalmente quando foi o caso de fazer isso para os DTOs onde são idênticos, porem no futuro podem ter razões para mudar diferentes
O que gostei
Acabei gostando bastante das facades, ainda não tive a experiencia de quebrar um monolito em microsseviços mas com elas da para ver claramente o quão desacoplado dá para deixar o sistema monolítico e já dá para imaginar que deve ser muito mais fácil separar um sistema assim do que separar um sistema que já está altamente acoplado
Aqui está o link para o repositório com o sistema que estou desenvolvendo
Posted on June 15, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
November 29, 2024