Comentarios en JavaScript: escribir código que se explica solo
📚 Contenido de la guía ⌃
- 1. El mapa mental de los comentarios en JavaScript 🧠
- Cómo pensar los comentarios en JS
- 2. Buenos vs malos comentarios: olfato de “código que se explica solo”
- 3. Comentarios de intención: contar el “para qué”, no el “cómo”
- 4. Comentarios de contexto: justificar decisiones raras
- 5. Comentarios de contrato: JSDoc para funciones que importan
- 6. Cuándo NO comentar: dejar que el código hable
- 7. TODO, FIXME y otras marcas como radar de tareas
- 8. Ejemplo integrado: de caos a código que se explica solo
- Conclusión: comenta como si le dejaras un mensaje a tu “yo” de dentro de 6 meses
¿Has abierto un archivo JavaScript y has pensado: “este código funciona… pero no entiendo nada”? A veces el problema no es el lenguaje, sino cómo nos hablamos a nosotros mismos en el código: comentarios que no dicen nada, comentarios desactualizados o, peor, archivos enteros sin una sola pista de intención.
En esta guía vamos a ver cómo usar los comentarios en JavaScript para escribir código que se explica solo. No se trata de llenar todo de texto, sino de aprender cuándo comentar, qué comentar y cómo para que tu yo del futuro (o tu compañero de equipo) puedan entender decisiones, atajos y rarezas sin sufrir.
La idea no es memorizar tipos de comentario, sino construir un criterio profesional: qué hace que un comentario sea útil, qué huele mal y cómo apoyarte en comentarios + buenos nombres + pequeñas funciones para que tu código sea una historia clara.
1. El mapa mental de los comentarios en JavaScript 🧠
Antes de ver sintaxis, pensemos en para qué existe un comentario. En un proyecto real, casi todos los comentarios caen en una de estas cuatro categorías:
- Explicar intención: qué está intentando lograr este bloque (el “para qué”).
- Explicar contexto: por qué se tomó una decisión rara o distinta a lo obvio.
- Explicar contrato: qué espera una función (inputs, outputs, errores).
- Ruido / basura: cosas que el código ya dice o que se quedaron obsoletas.
En esta guía vamos a empujar tus comentarios hacia los tres primeros tipos y a detectar rápido el cuarto. La meta: que cada comentario agregado pague su alquiler en claridad.
Cómo pensar los comentarios en JS
2. Buenos vs malos comentarios: olfato de “código que se explica solo”
Antes de escribir nuevos comentarios, vale la pena entrenar el olfato. Mira estos ejemplos:
Ejemplo 1: comentario que no aporta nada
// suma 1 al contador
contador = contador + 1;
Este comentario es ruido. El código ya lo dice. Si mañana cambias la línea y te olvidas de actualizar el comentario, ahora tendrás código contradictorio.
Ejemplo 2: comentario que sí agrega intención
// avanzamos al siguiente intento de login fallido para bloquear después de 3
failedLoginAttempts += 1;
Aquí el comentario no explica “qué hace” la suma, sino para qué existe el contador: bloquear tras 3 intentos. Es una pista de negocio, no una traducción de sintaxis.
❌ Huele mal cuando: el comentario repite la línea, traduce palabra por palabra o se queda desactualizado tras un refactor.
✅ Huele bien cuando: el comentario cuenta historia, contexto o reglas de negocio que el código por sí solo no revela.
3. Comentarios de intención: contar el “para qué”, no el “cómo”
El tipo más valioso de comentario es el que responde a la pregunta: “¿qué está intentando lograr este bloque?”. El código ya se encarga del cómo; el comentario cuenta el por qué.
Ejemplo: intención clara en una función de pago
// Validamos que el usuario pueda pagar ANTES de llamar a la pasarela externa
function canProcessPayment(user, cartTotal) {
const hasValidEmail = Boolean(user.email);
const hasPositiveBalance = cartTotal > 0;
const isAccountActive = user.status === 'active';
return hasValidEmail && hasPositiveBalance && isAccountActive;
}
La función ya tiene buen nombre, pero el comentario encima marca una decisión importante: validar antes de llamar a un servicio externo. Esa decisión ahorra dinero, tiempo y problemas de soporte.
Mini-refactor: cuando un comentario de intención te pide una función
// calcula si el usuario puede pagar
const canPay = user.balance >= cartTotal && !user.isBlocked;
Si tu comentario se parece demasiado al nombre de una posible función, es una señal para extraerla:
function canUserPay(user, cartTotal) {
return user.balance >= cartTotal && !user.isBlocked;
}
const canPay = canUserPay(user, cartTotal);
Ahora tu código se explica mejor solo, y el comentario puede desaparecer sin perder claridad.
4. Comentarios de contexto: justificar decisiones raras
A veces el código es raro a propósito: se usa una solución menos elegante para hacer feliz a un navegador viejo, una API externa o un bug conocido. Ahí un comentario de contexto es oro puro.
Ejemplo: explicando un “hack” controlado
// ⚠️ No usamos fetch aquí porque el navegador del laboratorio (IE11) no lo soporta.
// Esta ruta se eliminará cuando se actualicen los equipos (ticket #1234).
function legacyPost(url, data, callback) {
const xhr = new XMLHttpRequest();
xhr.open('POST', url);
xhr.onreadystatechange = () => {
if (xhr.readyState === 4) callback(xhr.status, xhr.responseText);
};
xhr.send(JSON.stringify(data));
}
Sin ese comentario, alguien podría “mejorar” el código reemplazándolo por fetch y romper un laboratorio entero sin saber por qué.
5. Comentarios de contrato: JSDoc para funciones que importan
Para funciones centrales (servicios, utilidades compartidas, lógica de negocio), vale la pena usar un formato más estructurado como JSDoc. Eso permite que VS Code y otros editores te muestren ayuda al escribir.
Ejemplo de función documentada con JSDoc
/**
* Calcula el promedio de notas de un estudiante.
*
* @param {number[]} grades - Lista de notas entre 0.0 y 5.0.
* @returns {{ average: number, status: 'aprobado' | 'reprobado' }}
* average Promedio numérico.
* status Estado final según la nota mínima institucional (3.0).
*/
function calculateGradeStatus(grades) {
if (!grades.length) {
return { average: 0, status: 'reprobado' };
}
const sum = grades.reduce((acc, grade) => acc + grade, 0);
const average = sum / grades.length;
const status = average >= 3 ? 'aprobado' : 'reprobado';
return { average, status };
}
Aquí el comentario actúa como mini documentación: explica rangos, retorno y decisión de negocio (nota mínima 3.0). Eso no se ve directamente en el código, pero afecta reglas del colegio.
Explica intención, contexto o contrato. No repite lo obvio. Se siente atado a reglas de negocio.
Describe el “cómo”. Útil solo si el algoritmo es complejo. Revisa si puedes extraer funciones con buen nombre.
Duplican el código, están desactualizados o son chistes internos que nadie entiende. Son los primeros en salir.
Comentarios y Valoraciones
No hay comentarios aún. ¡Sé el primero en opinar!