irwin@notes: ~/post/essay-frontend-architecture

Um ensaio sobre arquitetura frontend

2026-02-2712 min de leiturarascunho
#frontend#architecture#react

// Este post é um rascunho — o conteúdo pode mudar.

Sempre me incomodei com a falta de padrões na criação de aplicações frontend com os frameworks modernos. Quando comecei a desenvolver, já eram 6 anos de vida do React e as pessoas ainda discutiam se deveriam utilizar Redux ou Context API para gerenciar estados. Foi só recentemente que as documentações ficaram melhores, as bibliotecas ficaram estáveis e um caminho claro se abriu para ser seguido.

Os grandes frameworks declarativos parecem estar se convergindo para um padrão "ótimo" no desenvolvimento de aplicações web 2D. O Vue introduziu o ref e hooks, Svelte criou Runes e o SolidJS sempre foi muito semelhante ao React. Me parece que a evolução e a estabilização dos principios core do React moveram todo o mercado para um lugar mais aceitável.

Olhando de forma macro para o ecosistema, alguns padrões primitivos estão sendo criados, todos os frameworks possuem o conceito de State, Computed, Effects e Actions. Talvez, usando esses "axiomas", é possível pensar em um modelo de arquitetura universal que possa ser utilizado por todas as bibliotcas.

Na literatura, o frontend é normalmente tratado como uma camada. Ele é apenas uma parte do sistema, um detalhe de implementação. E de fato, muitas das vezes, o frontend é somente uma maneira de conectar um usuário ao que gera valor (à finalidade da aplicação), que fica num backend.

Por mais que possa ferir o coração de muitos frontenders, isso é verdade! Existem muitos sistemas CRUD e que não precisam de uma arquitetura robusta no frontend. Testes e manuteniblidade não são necessários. Substituir essa UI por outra não geraria impactos grandes no negócio.

É claro que essa é só uma parte da história, na verdade, frameworks como React e Angular só foram criados pois a UI precisava evoluir para gerar uma boa experiência para os usuários. A partir dai, o frontend começou a ter importância negocial, começou a gerar valor. Porém, o preço de uma experiência inovadora é complexidade no software. Com isso, o frontend para de ser um detalhe de implementação e vira também um fim em si, e por isso faz sentido se preocupar com arquitetura no frontend.