DEV Community

Wellerson Gomes
Wellerson Gomes

Posted on • Edited on

Entendendo Micro-frontends

Fala galera, vamos falar um pouco sobre micro frontend. Procurei uma abordagem prática e direta sobre esse tema na web e encontrei pouco material relevante, então resolvi trazer esse assunto para compartilhar os principais motivos de uso, os desafios de impementação e como funciona essa arquitetura utilizada por grandes empresas com uma abordagem mais simplicificada para desenvolvedores iniciantes.
Para acessar informações mais detalhadas sobre esse assunto, sugiro olhar esse artigo do Cam Jackson https://martinfowler.com/articles/micro-frontends.html

Direto ao ponto

Micro frontends, é um estilo arquitetônico onde aplicativos web frontend são entregues de forma independente, sendo compostos em uma aplicação host.
Os principais benefícios de adotar essa arquitetura são:

  • Bases de código menores, mais coesas e sustentáveis
  • Equipes autonomas e desacopladas;
  • Maior escalabilidade;
  • Maior capacidade de refatoração;

Na prática, vamos imaginar uma aplicação web onde os usuários podem acessar diversas funcionalidades de vários domínios diferentes. Essa aplicação é desenvolvida por um único time e na medida que surgem novas features, é necessário que essa equipe atue na codificação, build, testes e deploy, possuindo apenas uma base de código com sua pipeline.

Image description

Imaginando um cenário onde o projeto escale e ganhe novas funcionalidades de diferentes domínios, é natural que haja diversos conflitos no processo de desenvolvimento por conta do aumento de complexidade do código e da eficiência das entregas de features.

Dito isso, a implantação independente de micro frontends é essencial. Isso reduz o escopo de qualquer implantação, o que, por sua vez, reduz o risco associado. Independentemente de como ou onde o código de frontend está hospedado, cada micro frontend deve ter seu próprio pipeline de entrega contínua, que constrói, testa e implanta todo o caminho para a produção. O time responsável deve ser capazes de implantar cada micro frontend com muito pouca consideração dada ao estado atual de outras bases de código ou pipelines.

Mais abaixo podemos observar o fluxo de uma entrega continua isolada por times independentes implantando diferentes funcionalidades isoladas em uma aplicação pai que chamamos de container.

Image description

Conclusão

Micro frontends são sobre fatiar aplicações grandes em pedaços menores e mais gerenciáveis, e então ser explícito sobre as dependências entre elas. Nossas escolhas de tecnologia, nossas bases de código, nossas equipes e nossos processos de lançamento devem ser capazes de operar e evoluir independentemente uns dos outros, sem coordenação excessiva.

Em breve trarei um tutorial de implementação de micro frontend na prática. Mostrarei alguns exemplos de casos reais nos ambientes corporativos.

Top comments (0)