O objetivo principal da revisão de código é encontrar código que será difícil de manter

Objetivo da revisão de código: metas únicas vs múltiplas

  • Muitos discordam de enquadrar “encontrar código difícil de manter” como o principal objetivo.
  • Alternativas propostas como principais: transferência de conhecimento, correção/redução de bugs, verificações de sanidade do design, segurança ou simplesmente “ter uma conversa sobre a mudança”.
  • Vários argumentam que não existe um único propósito; a revisão de código é inerentemente multipropósito e depende do contexto (tamanho da equipe, nível de confiança, domínio, regulamentação).

Manutenibilidade vs detecção de bugs

  • Alguns apoiam o enquadramento de priorizar a manutenibilidade: se o código é claro e simples, bugs são mais fáceis de identificar e as correções são mais seguras.
  • Outros enfatizam que eles encontram bugs reais rotineiramente na revisão (erros de lógica, casos de borda, problemas de segurança e desempenho) e veem isso como central, não incidental.
  • Vários comentários rebatem a ideia de que examinar código “não pode” encontrar bugs, chamando isso de incorreto na prática ou de uma afirmação teórica mal comunicada.

Compartilhamento de conhecimento e ownership

  • Tema recorrente forte: revisão de código como transferência de conhecimento e ownership compartilhado.
  • Ler PRs mantém os colegas cientes das mudanças no sistema, evita surpresas e aumenta o “bus factor”.
  • Algumas equipes até criam PRs puramente como artefato de comunicação, mesmo quando fazem merge imediatamente.

Processo, fluxo de trabalho e cultura

  • As visões divergem fortemente conforme o fluxo de trabalho:
    • Processos estruturados, com design antes do código vs “fazer o design no PR”.
    • Equipes pequenas, com alta confiança vs ambientes grandes, com baixa confiança ou regulados.
    • Revisões assíncronas no estilo GitHub vs revisões síncronas, em formato de reunião.
  • A revisão de código pode ser saudável (ensino, colaboração) ou tóxica (controle de acesso, disputas de status, aprovações performáticas). A cultura da equipe e a orientação são vistas como cruciais.

Testes vs revisão

  • Muitos enfatizam que são os testes, e não a revisão, que devem fornecer as principais garantias de correção.
  • Boas revisões também verificam a existência e a qualidade dos testes ou dos planos de teste.
  • Alguns observam que a revisão às vezes detecta problemas de integração que os testes podem não capturar, especialmente quando a documentação e as fronteiras do sistema são fracas.

IA e o cenário em mudança

  • Vários apontam que código gerado por IA e revisões assistidas por IA aumentam o volume e o “slop”, tornando a revisão humana cuidadosa mais difícil.
  • Alguns preveem que as revisões de PR se tornarão insustentáveis ou serão transformadas; outros insistem que humanos ainda precisam garantir o entendimento e a manutenibilidade do código escrito por IA.