Code review en JavaScript: qué revisar y cómo dar retroalimentación
Code review (revisión de código) es el proceso de verificar el código por parte de uno o varios desarrolladores antes de fusionarlo en la rama principal del proyecto. Para los desarrolladores principiantes de JavaScript (especialmente los que trabajan con Node.js), esto no es solo una formalidad, sino una poderosa herramienta de aprendizaje y mejora de la calidad. En este artículo, analizaremos en qué fijarse al hacer una revisión y cómo formular observaciones para no ofender a un colega, sino ayudarlo a crecer.
¿Por qué es importante el code review en proyectos JavaScript?
JavaScript es un lenguaje dinámico y los errores a menudo solo se manifiestan en tiempo de ejecución. El code review ayuda a identificar:
- Errores lógicos y bugs;
- Violaciones de la arquitectura y el estilo del código;
- Problemas de rendimiento;
- Vulnerabilidades de seguridad (especialmente en Node.js).
Además, es una excelente manera de intercambiar conocimientos en el equipo. Incluso si eres principiante, tu mirada fresca puede notar lo que un desarrollador experimentado pasó por alto.
Qué revisar en el código JavaScript: lista de verificación
Para que la revisión sea sistemática, utilice la siguiente lista de verificación. Está dividida en tres bloques: corrección, legibilidad y rendimiento/seguridad.
1. Corrección y lógica
Primero, asegúrese de que el código resuelva la tarea planteada. Verifique:
- Casos límite: ¿Qué sucede si el array está vacío? ¿Si el argumento es
nulloundefined? - Asincronía: ¿Se manejan correctamente las promesas? ¿No hay un anidamiento "infernal" de
.then()? - Tipos de datos: ¿Se utiliza la comprobación estricta (
===en lugar de==)?
// Malo: conversión implícita de tiposif (userInput == 0) { ... }
// Bueno: comparación estrictaif (userInput === 0) { ... }2. Legibilidad y estilo del código
El código se escribe para personas, no para máquinas. Verifique:
- Nombres: Las variables y funciones deben hablar por sí mismas.
getData()es mejor quefunc1(). - Tamaño de las funciones: Una función debe hacer solo una cosa. Si tiene más de 20-30 líneas, quizás debería dividirse.
- Números mágicos: Extraiga números y cadenas en constantes.
// Malo: número mágicoif (status === 404) { ... }
// Bueno: constante con nombreconst HTTP_NOT_FOUND = 404;if (status === HTTP_NOT_FOUND) { ... }3. Rendimiento y seguridad (Node.js)
Para JavaScript del lado del servidor, esto es crítico:
- Evite bloquear el Event Loop: Las operaciones síncronas pesadas (por ejemplo,
JSON.parsede datos grandes) es mejor realizarlas de forma asíncrona o con workers. - Manejo de errores: Use siempre
try/catchen funciones asíncronas o.catch()para promesas. - Inyecciones: Nunca concatene la entrada del usuario directamente en comandos SQL o shell. Use consultas parametrizadas.
// Malo: vulnerable a inyección SQLconst query = `SELECT * FROM users WHERE id = ${userId}`;
// Bueno: consulta parametrizadaconst query = 'SELECT * FROM users WHERE id = $1';Cómo dar retroalimentación: 5 reglas de oro
Incluso la lista de verificación más correcta es inútil si la retroalimentación hace que el autor del código quiera renunciar. Aquí le mostramos cómo hacer que la revisión sea constructiva:
Regla 1: Comience con lo positivo
Encuentre al menos una cosa que esté bien hecha. "¡Excelente solución con el almacenamiento en caché!" — esto levanta el ánimo y muestra que no solo está mirando los errores.
Regla 2: Comente el código, no a la persona
En lugar de "Escribiste un bucle horrible", escriba: "Este bucle se puede reemplazar con Array.map() para una mayor legibilidad". Hable