Estado e interface / Cliente e servidor
O que roda no cliente e no servidor
O Que Roda no Cliente e no Servidor
Como decidir onde cada parte do trabalho deveria acontecer sem transformar a arquitetura numa mistura confusa.
O problema
Muita arquitetura de frontend fica estranha porque o time mistura trabalho de cliente e servidor sem critério claro.
Daqui a pouco tem fetch no lugar errado, dado sensivel indo para o browser sem necessidade e componente cliente fazendo trabalho que poderia chegar pronto.
O resultado costuma ser mais complexidade, mais loading e menos clareza.
Modelo mental
Cliente e servidor nao sao so lugares diferentes.
Eles tem responsabilidades diferentes.
De forma simples:
- servidor e bom para buscar dado, validar regra, proteger segredo e montar resposta
- cliente e bom para interacao, estado local, evento do usuario e atualizacao imediata da interface
Quando essa divisao fica clara, muita decisao fica mais facil.
Quebrando o problema
Antes de decidir onde algo roda, tente responder:
- isso precisa de segredo, permissao ou acesso direto a backend?
- isso depende de clique, digitação ou interacao imediata?
- isso pode chegar pronto para reduzir trabalho no browser?
- essa logica precisa mesmo ficar exposta no cliente?
Essas perguntas evitam muita mistura desnecessaria.
Exemplo simples
Imagine uma pagina que mostra pedidos e permite filtrar por status.
Uma divisao razoavel seria:
- servidor busca os pedidos e devolve os dados iniciais
- cliente controla o filtro selecionado e a interacao da tela
O erro comum seria colocar toda a busca, transformacao e regra de acesso no cliente so porque “ja estamos no componente”.
Isso aumenta custo no browser e embaralha responsabilidades.
Erros comuns
- mandar para o cliente trabalho que poderia vir resolvido do servidor
- colocar segredo ou logica sensivel perto da interface
- tratar qualquer componente interativo como se tudo precisasse ser client-side
- decidir pela conveniencia do arquivo atual, e nao pela responsabilidade real
Como um senior pensa
Um senior forte nao pergunta primeiro “em que arquivo eu escrevo isso?”.
Ele pergunta:
Qual lado deveria ser dono dessa responsabilidade para a interface ficar mais simples e mais segura?
Essa pergunta melhora performance, manutencao e clareza ao mesmo tempo.
O que o entrevistador quer ver
Em entrevista, isso costuma mostrar maturidade bem rapido:
- voce entende que cliente e servidor tem papeis diferentes
- voce sabe justificar por que algo deveria viver de um lado e nao do outro
- voce pensa em seguranca, simplicidade e custo de renderizacao
Quem faz isso bem passa a imagem de alguem que sabe desenhar interface alem do componente isolado.
Cliente serve para interagir. Servidor serve para preparar e proteger o que a interface precisa.
Se tudo foi parar no cliente por conveniencia, a arquitetura provavelmente perdeu criterio no caminho.