## glossário

O que é Clean Code?

Clean Code (código limpo) é o conjunto de práticas voltadas a tornar o código-fonte legível, compreensível e fácil de modificar. O conceito foi popularizado pelo livro homônimo de Robert C. Martin, publicado em 2008.

A premissa que sustenta tudo é econômica: código é lido muito mais vezes do que é escrito. Otimizar para a escrita economiza minutos uma vez; otimizar para a leitura economiza horas repetidamente, por anos, para todo mundo que passar por ali — incluindo você daqui a seis meses.

Nomes que dispensam explicação

O princípio mais rentável e o mais negligenciado. Um bom nome elimina a necessidade do comentário que explicaria o nome ruim.

O mesmo cálculo, com e sem clareza
// difícil de ler: o que são d, l e 0.1?
function calc(d, l) {
  return d.filter((x) => x.t > l).map((x) => x.v * 0.1);
}

// o código explica a si mesmo
const TAXA_COMISSAO = 0.1;

function calcularComissoes(vendas, valorMinimo) {
  return vendas
    .filter((venda) => venda.total > valorMinimo)
    .map((venda) => venda.valor * TAXA_COMISSAO);
}

Princípios centrais

  • Responsabilidade única — cada função faz uma coisa. Se o nome precisa de "e" para descrevê-la, provavelmente faz duas.
  • Funções pequenas — o que cabe na tela sem rolagem é mais fácil de entender por inteiro.
  • Evitar aninhamento profundo — retornos antecipados eliminam pirâmides de condicionais.
  • DRY com moderação — remova duplicação real de conhecimento, não coincidências de código que evoluirão em direções diferentes.
  • Comentários explicam o porquê — o código já diz o quê; o comentário deve registrar a decisão que não é óbvia.
  • Tratamento explícito de erro — falhas silenciosas transformam bugs simples em investigações longas.

As críticas — que também têm razão

Vale conhecer o contraponto, porque a aplicação dogmática causa problemas reais. Fragmentar demais o código em funções minúsculas pode reduzir a legibilidade, obrigando a saltar por dez arquivos para entender um fluxo. Abstrair cedo demais, antes de saber como o requisito vai evoluir, produz abstrações erradas que custam mais que a duplicação que evitariam. E "limpo" tem um componente subjetivo que o livro apresenta como universal.

A leitura mais equilibrada trata os princípios como heurísticas, não regras. O objetivo real não é atingir uma estética específica, e sim reduzir o custo de mudar o software amanhã. Quando um princípio aumenta esse custo, ele deve ceder.

Como aplicar na prática

Ferramentas automatizam a parte mecânica: linters detectam problemas estruturais e formatadores como Prettier encerram debates de estilo. Isso libera a revisão de código para o que importa — clareza de intenção, nomes adequados e decisões de design. A regra do escoteiro resume bem a abordagem incremental: deixe o código um pouco melhor do que o encontrou.

## faq

Perguntas frequentes

Clean Code deixa o código mais lento?

Raramente de forma perceptível. Compiladores e interpretadores modernos otimizam agressivamente, e a maioria dos gargalos está em acesso a banco, rede ou algoritmos mal escolhidos — não em ter funções pequenas. Quando há conflito real, medido com profiler, a performance vence no trecho crítico.

Comentários são ruins?

Não; comentários que explicam o que o código já diz é que são. O comentário valioso registra o porquê: uma decisão contraintuitiva, uma restrição de negócio, o motivo de um contorno. Esses o código não consegue expressar sozinho.

Vale refatorar código legado que funciona?

De forma oportunista, sim: melhore o que você precisa tocar de qualquer maneira. Refatoração ampla de código estável e sem testes é risco alto com retorno incerto. A ordem recomendada é escrever testes primeiro, depois refatorar com a rede de proteção montada.