6 min leitura • Guide 81 of 877
Realizando Revisões de Código Eficazes
Revisões de código podem ser um gargalo ou um multiplicador de força. Revisões eficazes melhoram a qualidade do código, espalham conhecimento e capturam bugs cedo. Revisões ruins criam atrito, atrasam o trabalho e danificam o moral da equipe. O GitScrum integra com GitHub/GitLab para tornar as revisões visíveis e eficientes.
Metas da Revisão de Código
| Meta | Como Alcançar |
|---|---|
| Encontrar bugs | Focar na lógica, casos extremos |
| Espalhar conhecimento | Revisar entre especialidades |
| Melhorar design | Discutir arquitetura |
| Manter padrões | Estilo consistente, padrões |
| Mentor | Explicar raciocínio |
Processo de Revisão
Melhores Práticas de Submissão
LISTA DE VERIFICAÇÃO DO AUTOR DO PR
═══════════════════════════════════
ANTES DE SUBMETER:
- [ ] Auto-revisou o diff
- [ ] Testes passam localmente
- [ ] Linter passa
- [ ] Nenhum código de debug restante
- [ ] Descrição explica por que
BOA DESCRIÇÃO DO PR:
─────────────────────────────────────
## O Que
Breve descrição da mudança.
## Por Que
Contexto e motivação.
## Como
Abordagem técnica tomada.
## Testes
Como isso foi verificado.
## Screenshots (se UI)
Antes/depois se aplicável.
## Relacionado
Links para tarefa GitScrum, docs, etc.
─────────────────────────────────────
Diretrizes de Tamanho do PR
RECOMENDAÇÕES DE TAMANHO DO PR
══════════════════════════════
IDEAL: 50-200 linhas alteradas
ACEITÁVEL: 200-400 linhas alteradas
MUITO GRANDE: 400+ linhas alteradas
POR QUE PRs PEQUENOS:
├── Mais fácil revisar completamente
├── Retorno mais rápido
├── Menos risco por mudança
├── Mais simples reverter
└── Melhor transferência de conhecimento
ESTRATÉGIAS DE DIVISÃO:
├── Feature flags para trabalho parcial
├── Extrair refatoração separadamente
├── Separar testes da implementação
├── Infraestrutura vs lógica
└── Backend vs frontend
Processo do Revisor
FLUXO DE TRABALHO DE REVISÃO
════════════════════════════
FASE 1: ENTENDER (5 min)
├── Ler descrição do PR
├── Verificar contexto da tarefa vinculada
├── Entender a meta
└── Revisar plano de teste
FASE 2: ALTO NÍVEL (10 min)
├── A abordagem está certa?
├── Algumas preocupações arquiteturais?
├── Componentes faltando?
└── Escopo correto?
FASE 3: DETALHADO (15-30 min)
├── Correção da lógica
├── Casos extremos tratados
├── Tratamento de erro
├── Implicações de performance
├── Considerações de segurança
└── Cobertura de teste
FASE 4: RESPONDER (5 min)
├── Organizar feedback
├── Priorizar comentários
├── Aprovar, solicitar mudanças ou comentar
└── Ser responsivo a perguntas
Framework de Feedback
Tipos de Comentário
CLASSIFICAÇÃO DE COMENTÁRIOS
════════════════════════════
BLOQUEANTE (deve corrigir):
├── Bugs e erros de lógica
├── Vulnerabilidades de segurança
├── Testes críticos faltando
├── Mudanças que quebram
└── Viola padrões centrais
NÃO BLOQUEANTE (deve considerar):
├── Sugestões de performance
├── Abordagens alternativas
├── Melhorias menores
├── Preferências de estilo (além do linter)
└── Melhorias desejáveis
ELOGIO (importante!):
├── Soluções inteligentes
├── Boa cobertura de teste
├── Refatoração limpa
├── Boa documentação
└── Momentos de aprendizado
FORMATO:
─────────────────────────────────────
[blocking] Isso falhará se usuário for null
[nit] Considere renomear para `isValidUser`
[praise] Ótimo tratamento do caso extremo!
─────────────────────────────────────
Feedback Construtivo
EXEMPLOS DE FEEDBACK
════════════════════
EM VEZ DE: TENTE:
───────────────────────────────────────────────────
"Isso está errado" "Isso pode causar X
porque Y. Considere Z."
"Por que você não...?" "Isso ajudaria...?"
"Isso é confuso" "Estou tendo dificuldade
em seguir isso. Você
poderia adicionar um comentário
ou renomear para esclarecer?"
"Isso é lento" "Isso executará N vezes.
Considere memoizar."
"Não faça assim" "O padrão da equipe para
isso é X. Aqui um
exemplo: [link]"
───────────────────────────────────────────────────
O Que Focar
PRIORIDADE DE REVISÃO
═════════════════════
ALTA PRIORIDADE:
├── Correção (funciona?)
├── Segurança (é seguro?)
├── Testes (está verificado?)
├── Casos extremos (está completo?)
└── Mudanças que quebram (é compatível?)
MÉDIA PRIORIDADE:
├── Performance (é eficiente?)
├── Legibilidade (é claro?)
├── Tratamento de erro (é robusto?)
├── Documentação (está explicado?)
└── Arquitetura (se encaixa?)
BAIXA PRIORIDADE (geralmente trabalho do linter):
├── Formatação
├── Convenções de nomenclatura
├── Ordem de import
├── Comprimento de linha
└── Escolhas triviais de estilo
Cultura de Revisão
Normas da Equipe
NORMAS DE REVISÃO DE CÓDIGO
═══════════════════════════
TEMPO:
├── Revisões acontecem dentro de 4 horas
├── Interromper trabalho para revisões
├── Revisões antes de novo trabalho
└── Sem PRs no fim de semana
PARTICIPAÇÃO:
├── Todos revisam (não apenas seniores)
├── Rotacionar revisores
├── Revisões entre equipes para contexto
└── Pelo menos 2 revisores para caminhos críticos
ATITUDE:
├── Assumir boa intenção
├── Ser humilde (você pode estar errado)
├── Separar ego do código
├── Agradecer revisores
└── Aprender com feedback
Reduzindo Atrito
REDUZINDO ATRITO DE REVISÃO
═══════════════════════════
AUTOR PODE:
├── Manter PRs pequenos
├── Escrever boas descrições
├── Auto-revisar primeiro
├── Responder rapidamente ao feedback
└── Não levar pessoalmente
REVISOR PODE:
├── Revisar prontamente
├── Ser específico e acionável
├── Distinguir bloqueante vs nit
├── Oferecer soluções, não apenas problemas
└── Aprovar quando "bom o suficiente"
EQUIPE PODE:
├── Automatizar verificações de estilo
├── Documentar padrões
├── Diretrizes de revisão
├── Celebrar boas revisões
└── Rastrear métricas de revisão
Integração com GitScrum
Visibilidade
VISIBILIDADE DE REVISÃO NO GITSCRUM
═══════════════════════════════════
CARTÃO DE TAREFA MOSTRA:
├── PR(s) vinculado(s)
├── Status de revisão
├── Status CI
├── Revisores atribuídos
└── Tempo em revisão
COLUNA DO QUADRO:
├── Coluna "Em Revisão"
├── Cartões movem automaticamente quando PR abre
├── Auto-mover na mesclagem
└── Fila de revisão visível
DASHBOARD:
├── PRs abertos precisando revisão
├── Tempo médio de revisão
├── Carga de revisão por pessoa
└── PRs estagnados sinalizados
Melhores Práticas
Para Revisões Eficazes
- Revisar diariamente — Não deixar PRs envelhecerem
- PRs menores vencem — Incentivar divisão
- Automatizar o óbvio — Linters, formatadores
- Ser mentor — Ensinar, não controlar
- Elogiar bom trabalho — Não apenas crítica
Anti-Padrões
ANTI-PADRÕES DE REVISÃO DE CÓDIGO:
✗ "LGTM" sem revisão real
✗ Latência de revisão de vários dias
✗ Focar no estilo sobre substância
✗ Exigir reescritas por preferências
✗ Apenas devs seniores revisando
✗ Nunca feedback positivo
✗ Bloquear por razões triviais