A Micro Frontends Solution – Analyzing quality attributes - Silva, Ricardo Alexandre Pinto da (2021)
A arquitetura de micro frontends propõe a decomposição de uma aplicação web dividida em módulos menores por página ou funcionalidade, sendo que cada módulo é propriedade de uma equipa multifuncional com responsabilidade end-to-end. Essa abordagem visa trazer os benefícios dos micro-serviços para o frontend, permitindo o desenvolvimento de pequenos frontends independentes, com reduzida complexidade e dependência da equipa, aumentando a escalabilidade no geral. Os Micro Frontends estão a tornar-se populares dia após dia. Embora não seja em demasia, a documentação sobre o assunto aumenta a cada dia e é possível encontrar relatos de casos de uso de sucesso de grandes empresas e exemplos da aplicação da arquitetura. Um dos principais desafios dos micro frontends é a composição do lado do cliente. A possibilidade de criar uma single-page application composta de módulos importados remotamente durante o tempo de execução é possível e facilitado com o surgimento de frameworks como single-spa e a nova técnica: Module Federation. No entanto, a análise de tais soluções com base em atributos de qualidade é escassa. O objetivo deste trabalho é realizar uma análise em micro frontends com base nos atributos de qualidade de software da ISO-20510, nomeadamente: Manutenibilidade, Eficiência de Desempenho, Escalabilidade, e Testabilidade. Esta dissertação fornece uma visão geral do estado atual dos micro frontends até ao momento, estruturada utilizando a metodologia DSRM para organizar o estudo sobre a nova abordagem arquitetural. Esse estudo inclui os seus benefícios e problemas, casos de uso atuais, padrões comuns, técnicas, frameworks, arquitetura e uma visão geral da organização de equipas. A prova de conceito é desenvolvida usando uma abordagem de Module Federation, com base em um application shell unificado para composição do lado do cliente. A validação da solução é baseada na metodologia GQM para estruturar a sua análise em relação à Manutenibilidade, Eficiência de Desempenho, Escalabilidade, e Testabilidade.