tema
Código limpo
Código limpo em entrevista não é sobre gosto — é sobre custo de leitura. Espere discussão sobre nomes que dispensam comentário, funções que fazem uma coisa, quando um comentário ajuda e quando ele é desculpa, e por que aplicar DRY cedo demais acopla coisas que só pareciam iguais.
Simuladores de Código limpo
Principais perguntas de Código limpo
ver todas →O que torna um nome bom
Revela intenção sem olhar a implementação, não engana, é buscável e consistente. Código é lido muito mais do que escrito — nome ruim custa toda leitura.
FácilJúnior'Função faz uma coisa' — o que isso quer dizer
Não dá pra nomear sem 'e'; mistura níveis de abstração; tem seções comentadas; teste exige muitos setups. Uma coisa = um nível de abstração coerente, não X linhas.
MédioPlenoComentário bom x comentário que é desculpa
Bom: explica o 'porquê' não óbvio, avisa consequência, dá contexto externo. Ruim: repete o código, compensa um nome ruim, ou está desatualizado. Prefira código claro a comentário.
FácilJúniorDRY tem limite: acoplamento por coincidência
DRY é sobre conhecimento único, não código parecido. Abstrair cedo amarra usos que divergem depois — 'duplicação é mais barata que a abstração errada'. Espere o terceiro caso.
MédioPlenoRegra do escoteiro e refatoração incremental
Melhore um pouco todo arquivo que tocar (nome, função extraída, código morto). Risco baixo, entra com trabalho já revisado, melhora onde há atividade. Big refactor é adiado e incha.
FácilPlenoCenário: a função com três parâmetros booleanos
Booleanos posicionais são ilegíveis e trocáveis, e sinalizam múltiplos comportamentos. Troque por objeto de opções nomeadas, funções separadas, ou um enum de modo.
MédioPlenoGuard clauses x aninhamento profundo de if
Guards tratam saídas no topo e retornam, deixando o caminho feliz plano e legível. O if aninhado empurra o corpo pra dentro e afasta o erro da condição que o causou.
FácilJúniorNúmeros e strings mágicos
O literal não diz o que significa nem por quê. Extraia pra constante com nome do CONCEITO (não `const TRES`). Não extraia o que já é óbvio (`array[0]`, `i+1`); `24*60*60*1000` já ajuda sem constante.
FácilJúniorEfeito colateral escondido: a função que mente sobre o que faz
O nome `get` promete leitura pura mas escreve — chamador não sabe, testes e loops disparam efeitos surpresa. Separe comando de consulta (CQS); auditoria vira responsabilidade explícita, não efeito escondido.
MédioPlenoO que priorizar num code review
Correção → teste → segurança/dados → design/fronteiras/reuso → legibilidade → nits (que o linter deveria pegar). Classifique os comentários (bloqueia/sugestão), aprove com nits pequenos, PRs pequenos.
MédioPlenoTODO, FIXME e comentários que apodrecem
TODO solto = lembrete sem dono que vira ruído. Use `TODO(#issue): contexto`, transforme trabalho real em ticket, deixe o CI barrar FIXME sem issue, e apague os obsoletos.
FácilJúniorCenário: a abstração de plugin que ninguém usou
Peça um segundo caso de uso concreto e datado. Sem ele: implemente o caso único simples e bem fatorado; generalize quando o segundo chegar (a abstração sem exemplo real costuma sair errada). YAGNI + regra do terceiro caso.
MédioSêniorPor que discutir estilo em review é desperdício
Discussão de estilo rouba atenção da correção/design e gera atrito de gosto. Automatize: formatter no save + pré-commit, linter pras regras que pegam bug, CI barra o que está torto. A ferramenta decide por todos.
FácilJúnior
Perguntas frequentes
O que os entrevistadores mais avaliam em código limpo?
Código limpo em entrevista não é sobre gosto — é sobre custo de leitura. Espere discussão sobre nomes que dispensam comentário, funções que fazem uma coisa, quando um comentário ajuda e quando ele é desculpa, e por que aplicar DRY cedo demais acopla coisas que só pareciam iguais.
Quanto tempo leva pra treinar código limpo até me sentir pronto?
Depende do seu ponto de partida, mas a maioria sente diferença depois de 2-3 simulações completas com revisão das perguntas erradas — é aí que os padrões que se repetem em entrevista real ficam visíveis.