1
resposta

De monólito para micro front-end

Galera preciso da opinião de uma pessoa mais experiente, eu faço uma aplicação no trabalho (como única front-end, então eu sou tipo lead front-end da empresa) que tem vários módulos (6 e agora deve aumentar pra 7). Fazendo a formação em engenharia de software eu cheguei nos micro-serviços.

Eu tô pensando seriamente em mudar a arquitetura do front de monolito para micro front-end. Por que? Porque apesar de ser uma empresa muito pequena, eu normalmente construo um módulo por vez, começo com o que tem no módulo e depois faço as conexões entre eles (é tipo um sistema que todos os módulos se comunicam) e porque acontece com maior frequência do que eu gostaria de um erro de implementação em um módulo interferir em todos e os usuários (que são ínfimos até o momento) ficarem impedidos de usar por causa de um erro que muitas vezes é bobo.

Sim, nós fazemos o teste antes de enviar pra produção. Não, não temos testes automatizados AINDA e a empresa é uma Startup. Alguma dica?

Algumas informações que podem ser importantes: nós vendemos pacotes por módulos, ou seja, nem todos os clientes tem acesso a todos os módulos (apesar de ter 3 que vendemos sempre juntos porque eles são meio que essenciais), então ainda que o cliente não tenha acesso ao módulo X, se o módulo X quebrar por um erro em produção, ele perde o X e Y que ele usa. E sim, eu ouvi os dois podcasts e vi como uma boa arquitetura em um sistema monolítico pode evitar bastante coisa. Também penso que depois de implementar os testes automatizados o risco de essas coisas acontecerem cai bastante como já caiu depois que eu implementei o Typescript, mas eu ainda fico me perguntando se não pode valer a pena.

1 resposta

Olá Ana, tudo bem? Parabéns pela iniciativa de buscar uma solução para o problema que você está enfrentando em relação à arquitetura do seu sistema. A mudança de monólito para micro front-end pode ser uma solução interessante para evitar que um erro em um módulo afete todo o sistema.

Além disso, como você mencionou, a implementação de testes automatizados também pode ajudar bastante a evitar problemas em produção. Uma dica que posso te dar é começar a implementação dos testes automatizados o quanto antes, mesmo que seja aos poucos, para que você possa ter mais segurança na hora de enviar as atualizações para produção. Outra coisa que pode ser interessante é pensar em como organizar os pacotes por módulos de forma que os clientes que não têm acesso a determinado módulo não sejam afetados caso ocorra algum erro nesse módulo.

No entanto, é importante lembrar que a mudança de arquitetura pode ser um processo complexo e que exige planejamento e cuidado na implementação. Por isso, é importante avaliar bem os prós e contras antes de tomar uma decisão.

Espero ter ajudado e bons estudos!