Guías de Revisión de Código
Qué buscan los revisores en las pull requests de Python: corrección, pruebas, seguridad, operabilidad y convenciones del equipo, sin convertir la revisión en minucias de estilo que ruff ya aplica.
Busca en todas las páginas de la documentación
Qué buscan los revisores en las pull requests de Python: corrección, pruebas, seguridad, operabilidad y convenciones del equipo, sin convertir la revisión en minucias de estilo que ruff ya aplica.
Pase de 5 minutos del revisor:
Cuándo consultar esto:
Buena descripción de PR:
## [BILL-91] Aplicar IVA a pedidos de la UE
- Añade TaxService con aritmética Decimal
- Revisión de Alembic `a1b2c3` añade la columna `vat_amount` (nullable, rellenada en un seguimiento)
- Bandera de funcionalidad `billing.vat_enabled` desactivada por defecto
## Plan de pruebas
- [x] uv run pytest tests/billing/test_tax.py
- [x] Manual: crear pedido con dirección DE, activar bandera, ver línea de IVA
## Reversión
Desactivar bandera; migración reversible mediante downgrade (elimina la columna - OK pre-producción)Buen comentario de revisión:
**Pregunta:** ¿Qué sucede con los elementos de línea de cantidad cero? ¿Se divide por cero o se omite?
Sugiero afirmar en `test_tax_zero_quantity` - estaré encantado de aprobar después de eso.Lo que esto demuestra:
| Prioridad | Comprobación |
|---|---|
| P0 | Corrección, seguridad, riesgo de pérdida de datos |
| P1 | Pruebas, migraciones, rupturas de contrato de API |
| P2 | Rendimiento, observabilidad (logs/métricas) |
| P3 | Estilo (si CI lo omitió), nombres, documentación |
async def?float para la moneda?dict no dataclass". Solución: pedir ADR si es arquitectónico.| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
| Programación en parejas | Cambio complejo y arriesgado | Diferencia horaria para revisión asíncrona |
| Bot de revisión IA | Primer pase de minucias | Revisor único para seguridad |
| Documento de diseño antes del código | Gran cambio arquitectónico | Corrección de un error de una línea |
| Sin revisión (individual) | Prototipo desechable | main de producción |
Objetivo de primera respuesta < 1 día hábil; SLA según la wiki del equipo.
Sí, si las minucias no son bloqueantes y se rastrean opcionalmente en una tarea de seguimiento.
Solicitar cambios cuando la fusión causaría riesgo en producción; comentar para fines educativos u opcionales.
Se anima - las preguntas mejoran la documentación; el senior sigue siendo CODEOWNER en rutas críticas.
OK para actualizaciones de parches de dependabot con política; no para migraciones sin intervención humana.
Preferir .py emparejados de Jupytext o revisar solo el diff con salidas eliminadas.
Autenticación, criptografía, nuevos analizadores de entrada externa, aumentos importantes de dependencias - etiquetar al compañero de seguridad.
Consultas de ruta crítica, nuevos bucles ORM N+1, pandas grandes en la ruta de solicitud.
El autor después de la aprobación + CI en verde, a menos que el rol de gestor de lanzamiento para el tren.
El autor vigila los paneles 30 minutos después del despliegue de su cambio - anotarlo en la plantilla del PR.
Versiones de Stack: Esta página fue escrita para Python 3.14.0 (estable 3.14, mantenimiento 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+, y uv 0.6+.
Revisado por Chris St. John·Última actualización: 16 jul 2026