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.