Code review em JavaScript: o que verificar e como dar feedback
Code review (revisão de código) é o processo de verificação do código por um ou mais desenvolvedores antes de sua mesclagem ao branch principal do projeto. Para desenvolvedores JavaScript iniciantes (especialmente os que trabalham com Node.js), isso não é apenas uma formalidade, mas uma poderosa ferramenta de aprendizado e melhoria da qualidade. Neste artigo, vamos analisar o que observar durante a revisão e como formular observações para não ofender um colega, mas ajudá-lo a crescer.
Por que o code review é importante para projetos JavaScript?
JavaScript é uma linguagem dinâmica, e os erros geralmente aparecem apenas em tempo de execução. O code review ajuda a identificar:
- Erros lógicos e bugs;
- Violação da arquitetura e do estilo do código;
- Problemas de desempenho;
- Vulnerabilidades de segurança (especialmente em Node.js).
Além disso, é uma excelente forma de compartilhar conhecimento na equipe. Mesmo que você seja iniciante, seu olhar fresco pode perceber algo que um desenvolvedor experiente deixou passar.
O que verificar no código JavaScript: checklist
Para que a revisão seja sistemática, use o seguinte checklist. Ele está dividido em três blocos: correção, legibilidade e desempenho/segurança.
1. Correção e lógica
Primeiro, certifique-se de que o código resolve a tarefa proposta. Verifique:
- Casos extremos: O que acontece se o array estiver vazio? Se o argumento for
nullouundefined? - Assincronicidade: As promises foram tratadas corretamente? Não há aninhamento "infernal" de
.then()? - Tipos de dados: A verificação estrita está sendo usada (
===em vez de==)?
// Ruim: conversão implícita de tiposif (userInput == 0) { ... }
// Bom: comparação estritaif (userInput === 0) { ... }2. Legibilidade e estilo do código
O código é escrito para pessoas, não para máquinas. Verifique:
- Nomenclatura: Variáveis e funções devem falar por si.
getData()é melhor quefunc1(). - Tamanho das funções: Uma função deve fazer apenas uma coisa. Se tiver mais de 20-30 linhas, talvez seja melhor dividi-la.
- Números mágicos: Coloque números e strings em constantes.
// Ruim: número mágicoif (status === 404) { ... }
// Bom: constante nomeadaconst HTTP_NOT_FOUND = 404;if (status === HTTP_NOT_FOUND) { ... }3. Desempenho e segurança (Node.js)
Para JavaScript no servidor, isso é crítico:
- Evite bloquear o Event Loop: Operações síncronas pesadas (como
JSON.parsede grandes dados) devem ser feitas de forma assíncrona ou com workers. - Tratamento de erros: Sempre use
try/catchem funções assíncronas ou.catch()para promises. - Injeções: Nunca concatene entrada do usuário diretamente em comandos SQL ou shell. Use consultas parametrizadas.
// Ruim: vulnerável a injeção SQL
const query = `SELECT * FROM users WHERE id = ${userId}`;
// Bom: consulta parametrizada
const query = 'SELECT * FROM users WHERE id = $1';
Como dar feedback: 5 regras de ouro
Mesmo o checklist mais correto é inútil se o feedback fizer o autor do código querer pedir demissão. Veja como tornar a revisão construtiva:
Regra 1: Comece pelo positivo
Encontre pelo menos uma coisa que foi bem feita. "Ótima solução com cache!" — isso melhora o ânimo e mostra que você não está olhando apenas para os erros.
Regra 2: Comente o código, não a pessoa
Em vez de "Você escreveu um loop horrível", escreva: "Este loop pode ser substituído por Array.map() para maior legibilidade". Fale