Diretrizes de Revisão de Código
O que os revisores procuram em pull requests de Python - correção, testes, segurança, operabilidade e convenções da equipe - sem transformar a revisão em críticas de estilo que o ruff já impõe.
Busque em todas as páginas da documentação
O que os revisores procuram em pull requests de Python - correção, testes, segurança, operabilidade e convenções da equipe - sem transformar a revisão em críticas de estilo que o ruff já impõe.
Passagem de 5 minutos do revisor:
Quando usar:
Boa descrição de PR:
## [BILL-91] Aplicar IVA em pedidos da UE
- Adiciona TaxService com matemática Decimal
- Revisão Alembic `a1b2c3` adiciona coluna `vat_amount` (nullable, preenchida em follow-up)
- Feature flag `billing.vat_enabled` padrão desativado
## Plano de teste
- [x] uv run pytest tests/billing/test_tax.py
- [x] Manual: criar pedido com endereço DE, flag ativada, ver linha de IVA
## Rollback
Desativar flag; migração reversível via downgrade (descarta coluna - OK pré-produção)Bom comentário de revisão:
**Pergunta:** O que acontece para itens de linha com quantidade zero - divisão por zero ou pular?
Sugiro assert em `test_tax_zero_quantity` - fico feliz em aprovar depois disso.O que isso demonstra:
| Prioridade | Verificação |
|---|---|
| P0 | Correção, segurança, risco de perda de dados |
| P1 | Testes, migrações, quebras de contrato de API |
| P2 | Desempenho, observabilidade (logs/métricas) |
| P3 | Estilo (se CI perdeu), nomenclatura, documentação |
async def?| Alternativa | Usar Quando | Não Usar Quando |
|---|---|---|
| Programação em par | Mudança complexa e arriscada | Dispersão de fuso horário para revisão assíncrona |
| Bot de revisão de IA | Primeira passagem de críticas | Único revisor para segurança |
| Documento de design antes do código | Grande mudança arquitetural | Correção de bug de uma linha |
| Sem revisão (individual) | Protótipo descartável | main de produção |
Resposta inicial alvo < 1 dia útil; SLA por wiki da equipe.
Sim, se os nits forem não bloqueantes e rastreados em um ticket de acompanhamento opcional.
Solicitar alterações quando a mesclagem causaria risco de produção; comentar para fins educacionais ou opcionais.
Encorajado - perguntas melhoram a documentação; sênior ainda é CODEOWNER em caminhos críticos.
OK para atualizações de patch do dependabot com política; não para migrações sem intervenção humana.
Preferir .py pareados do Jupytext ou revisar apenas o diff com saídas removidas.
Autenticação, criptografia, novos parsers de entrada externa, atualizações de versão principal de dependência - marcar o contato de segurança.
Consultas de caminho crítico, novos loops ORM N+1, grandes quantidades de pandas no caminho de requisição.
Autor após aprovação + CI verde, a menos que o gerente de lançamento seja para o trem.
Autor observa os dashboards por 30 minutos após a implantação de sua alteração - anotar no template do PR.
Versões de Stack: Esta página foi escrita para Python 3.14.0 (estável 3.14, manutenção 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+, e uv 0.6+.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026