Regla
Eliminar comentado código bloques
código código genera ruido, se vuelve obsoleto
y pertenece en versión de , no el código.Introducción
El código comentado se acumula cuando los desarrolladores no están seguros de si necesitarán la lógica antigua más adelante. Alguien comenta una función «por si acaso» en lugar de eliminarla, y esta permanece allí para siempre. Nadie sabe si este código sigue funcionando, por qué se deshabilitó o si es seguro eliminarlo. La base de código se llena de fantasmas de implementaciones pasadas que distraen de la comprensión de lo que realmente se ejecuta en producción.
Por qué es importante
Mantenibilidad del código: El código comentado obliga a los lectores a filtrar mentalmente lo que es real de lo que está inactivo. Durante la revisión del código, no se puede saber si estos bloques son experimentos temporales, opciones importantes de reversión o restos olvidados de hace años. Este ruido dificulta la comprensión de la lógica real, la búsqueda de secciones de código relevantes y la revisión significativa de los cambios.
Implicaciones de seguridad: Las comprobaciones de autenticación, la lógica de validación o las características de seguridad comentadas revelan que estas protecciones existieron, pero fueron deshabilitadas deliberadamente. Si el código comentado contiene credenciales, claves de API o URL internas, está enviando esos datos sensibles en texto plano. Los atacantes que revisan su base de código ven exactamente qué medidas de seguridad consideró y eliminó.
Confusión en el control de versiones: Los diffs de Git se llenan de bloques comentados que en realidad no están cambiando. Cuando necesita rastrear cuándo cambió la lógica o por qué una característica funciona de cierta manera, las alternativas comentadas ocultan el historial real. La búsqueda en la base de código devuelve coincidencias en código muerto, lo que hace perder tiempo investigando rutas que no se ejecutan.
Ejemplos de código
❌ No conforme:
async function createUser(userData) {
// const hashedPassword = await bcrypt.hash(userData.password, 10);
const user = await db.users.create({
email: userData.email,
password: userData.password,
// password: hashedPassword,
role: userData.role || 'user'
});
// await sendWelcomeEmail(user.email);
// await notifyAdmins(user);
// Old validation approach
// if (!isValidEmail(user.email)) {
// throw new Error('Invalid email');
// }
return user;
}
Por qué está mal: El hash de contraseñas comentado revela que las contraseñas se almacenan en texto plano, una vulnerabilidad de seguridad crítica. Nadie sabe si el correo electrónico de bienvenida y la notificación de administrador deben estar habilitados, y la antigua validación sugiere que la validación de correo electrónico podría faltar.
✅ Conforme:
async function createUser(userData) {
if (!isValidEmail(userData.email)) {
throw new Error('Invalid email');
}
const hashedPassword = await bcrypt.hash(userData.password, 10);
const user = await db.users.create({
email: userData.email,
password: hashedPassword,
role: userData.role || 'user'
});
await sendWelcomeEmail(user.email);
await notifyAdmins(user);
return user;
}
Por qué es importante: La función es clara y completa, mostrando exactamente lo que se ejecuta en producción. La validación de correo electrónico se ejecuta primero, las contraseñas se hashean correctamente y todas las notificaciones se envían sin ambigüedad sobre lo que está habilitado.
Conclusión
Elimina el código en lugar de comentarlo. Tu sistema de control de versiones conserva cada línea escrita, accesible a través de git log y git blame cuando lo necesite. Mantener código comentado en el repositorio solo genera ruido que oculta la lógica real y dificulta la navegación por su base de código.

