Clean Architecture no frontend: vale a pena ou é over-engineering?
Clean Architecture foi definida para backends e sistemas complexos. Aplicar no frontend, especialmente em projetos React, virou moda em alguns times. Vale a pena?
O argumento a favor
Separação de responsabilidades. Regras de negócio separadas de UI, que está separada de acesso a dados. Trocar React por Vue não exige reescrever a lógica. Testar a lógica sem montar componentes.
Escalabilidade de times. Em times grandes com múltiplas pessoas no mesmo codebase, fronteiras claras reduzem conflito.
O argumento contra
Frontend é inerentemente acoplado à UI. A lógica de um formulário, as validações, o estado de loading: separar isso agressivamente cria abstrações que não reduzem complexidade, só a movem.
Custo de boilerplate. Clean Architecture no frontend frequentemente gera 5 arquivos para funcionalidade que seria clara em 1.
React já tem suas abstrações. Hooks, Context, componentes reutilizáveis. O modelo mental do React já é uma arquitetura. Adicionar camadas por cima frequentemente conflita com o modelo nativo.
Quando faz sentido
Lógica de negócio complexa que poderia migrar de framework. Cálculos financeiros, simulações, regras elaboradas: isso faz sentido isolar.
Times grandes com domínios bem definidos. Para 2 devs numa startup, é over-engineering.
A conclusão pragmática
Aplique os princípios, não a arquitetura completa. Separação de responsabilidades sim. Camadas de abstração por arquitetura sim. Ports and adapters para um formulário de cadastro, não.
Você usa Clean Architecture no frontend?