He revisado miles de solicitudes de extracción durante 10 años. Los patrones son notablemente consistentes: los mismos tipos de problemas surgen una y otra vez, independientemente del lenguaje, el marco o el nivel de experiencia del desarrollador.
Lo Que Realmente Busco
OlvÃdate de las listas de verificación de revisión de código del libro de texto con 50 Ãtems. En la práctica, me enfoco en cinco cosas que atrapan el 90% de los problemas reales:
1. Manejo de Errores
La fuente número uno de incidentes en producción. Preguntas que hago: ¿Qué pasa cuando esta llamada a la API falla? ¿Qué pasa si la base de datos está caÃda? ¿Qué sucede si la entrada es nula? Si la respuesta es "se cae", eso es un problema.
2. Casos LÃmite
Arrays vacÃos, valores cero, entradas muy grandes, caracteres Unicode, solicitudes concurrentes. El camino feliz siempre funciona. Los casos lÃmite son donde viven los errores.
3. Seguridad
La entrada del usuario que va directamente a consultas SQL, HTML o comandos de shell. Faltan verificaciones de autenticación en los puntos finales. Secretos hardcodeados en el código fuente. Según las pautas de revisión de código de Google, los problemas de seguridad deben bloquear cualquier PR.
4. Legibilidad
¿Puede alguien que no escribió este código entenderlo en 30 segundos? Nombres de variables que explican lo que contienen. Funciones que hacen una cosa. Comentarios que explican el porqué, no el qué.
5. Rendimiento (Cuando Importa)
Consultas a la base de datos N+1, renderizados innecesarios, algoritmos O(n²) en conjuntos de datos grandes. No optimizo prematuramente, pero marco problemas evidentes de rendimiento.
El Proceso de Revisión
El Revisor de Código AI automatiza las partes mecánicas de la revisión de código: verificación de patrones comunes, problemas de seguridad y violaciones de estilo. Pero no reemplaza la revisión humana para decisiones de arquitectura y lógica empresarial.
Mi proceso: revisión AI primero (captura lo obvio) → revisión humana (captura lo sutil) → discusión (resuelve desacuerdos).
Cómo Dar Buen Retroalimentación
- Se especÃfico. "Esto podrÃa ser mejor" no es útil. "Esta consulta SQL es vulnerable a inyección — usa consultas parametrizadas en su lugar" es accionable.
- Explica por qué. No digas solo "cambia esto." Explica el razonamiento para que el desarrollador aprenda.
- Distingue bloqueadores de sugerencias. "Debe corregirse: problema de seguridad" vs. "Nit: renombrarÃa esta variable por claridad."
- Elogia el buen código. "Buen manejo de errores aquÃ" refuerza buenas prácticas.