Code review em Java: o que verificar e como dar feedback
Code review (revisão de código) não é apenas uma formalidade antes do merge de um pull request. É uma ferramenta poderosa para melhorar a qualidade do código, compartilhar conhecimento e prevenir bugs. Para desenvolvedores Java iniciantes, participar de uma revisão muitas vezes causa medo: "E se me criticarem?", "E se eu deixar passar um erro crítico?". Neste artigo, vamos analisar o que observar ao revisar código Java e como dar feedback de forma que ele ajude, e não desmotive.
1. O que verificar no código Java: checklist para iniciantes
O primeiro e mais importante passo é saber o que observar. Não tente encontrar tudo de uma vez. Concentre-se nas áreas-chave. Aqui está um checklist básico para code review em Java:
- Lógica e correção: O código resolve o problema proposto? Existem erros lógicos óbvios? Os casos limite são tratados corretamente?
- Naming (nomenclatura): Os nomes de variáveis, métodos e classes seguem as convenções Java (camelCase, PascalCase)? Eles são descritivos?
int aé ruim,int numberOfUsersé bom. - Tratamento de erros: Existem blocos try-catch? São usados tipos específicos de exceção em vez do genérico
Exception? As exceções não estão sendo "engolidas" silenciosamente (catch vazio)? - Desempenho: Existem problemas óbvios, como criação de objetos dentro de loops, uso de concatenação de strings com
+em loop (melhor usarStringBuilder), ou chamadas de métodos desnecessárias? - Testes: O código está coberto por testes unitários? Eles verificam apenas cenários positivos ou também cenários negativos e de limite?
Exemplo de código ruim que deve ser notado na revisão:
public void processData(List data) { for (Object item : data) { String s = ""; for (int i = 0; i < 1000; i++) { s += item.toString() + i; // Potencial problema de desempenho } System.out.println(s); }}O que há de errado aqui? O uso de + dentro do loop cria vários objetos String intermediários. É melhor substituir por StringBuilder. Também falta uma verificação de data para null.
2. Como dar feedback construtivo
O aspecto mais desafiador do code review não é a verificação técnica, mas a comunicação. Seu objetivo não é mostrar quem é mais inteligente, mas ajudar a equipe a crescer. Aqui estão algumas regras:
- Foco no código, não no autor. Em vez de "Você escreveu um código horrível", diga "Este método pode ser simplificado usando Stream API".
- Use a forma interrogativa. Em vez de afirmações, faça perguntas. Exemplo: "Por que foi escolhido ArrayList aqui em vez de LinkedList? Considerando as inserções frequentes no início da lista, LinkedList pode ser mais eficiente."
- Explique o "porquê". Um simples "Corrija isso" não funciona. Escreva: "Vamos substituir
==por.equals()para comparar strings, porque==compara referências, e não o conteúdo." - Elogie o bom código. Se você vir uma solução elegante, destaque-a. "Ótimo uso do padrão Builder aqui — o código ficou muito mais legível."
Exemplo de comentário ruim: "Isso é código lixo, reescreva." Exemplo de comentário bom: "Acho que este bloco poderia ser extraído para um método privado separado para melhorar a legibilidade do método principal. O que você acha?"
3. Erros típicos de iniciantes em Java e como destacá-los
Conhecendo os erros típicos, você conseguirá encontrá-los mais rapidamente e dar conselhos mais relevantes. Aqui estão os 3 principais erros que frequentemente aparecem em revisões de desenvolvedores Java iniciantes: