Regla
Eliminar pendientes TODO/FIXME comentarios
Sin resolver TODO y FIXME comentarios indican
incompleto trabajo que puede acumularse con tiempo.
Seguimiento los problemas en su problema seguimiento en lugar de de dejarlos en en código.
Idiomas admitidos: 45+Introducción
Los comentarios TODO y FIXME comienzan como recordatorios útiles, pero rápidamente se convierten en elementos permanentes en la base de código. Lo que se pretendía como una nota temporal se convierte en una señal de advertencia que todo el mundo ignora. Estos comentarios indican trabajo inacabado, decisiones aplazadas o problemas conocidos que nadie siguió correctamente. Cuando se entrega código con comentarios TODO, se está entregando un reconocimiento de que algo no está bien, sin ningún plan para solucionarlo.
Por qué es importante
Mantenibilidad del código: Los comentarios TODO generan ambigüedad sobre la preparación y completitud del código. Los nuevos miembros del equipo no saben si estos comentarios representan problemas urgentes o notas de hace años a las que ya nadie presta atención. Cuantos más TODOs se acumulan, menos en serio se los toma la gente, creando un efecto de ventanas rotas donde los estándares de calidad se erosionan.
Seguimiento de la deuda técnica: Los problemas ocultos en los comentarios no se priorizan, asignan ni rastrean. Su sistema de gestión de proyectos muestra que todo está completo, mientras que la base de código contiene docenas de notas de "arreglar esto más tarde". Sin un seguimiento adecuado, los problemas importantes se olvidan hasta que causan problemas en producción.
Implicaciones de seguridad: Los comentarios TODO a veces marcan implementaciones de seguridad incompletas o vulnerabilidades conocidas. Un comentario como "TODO: añadir comprobación de autenticación" en código de producción significa que se ha enviado una brecha de seguridad con pleno conocimiento. Estos marcadores facilitan a los atacantes que revisan su código encontrar puntos débiles.
Ejemplos de código
❌ No conforme:
async function processPayment(userId, amount) {
// TODO: Add fraud detection before processing
// FIXME: This doesn't handle concurrent payments
const user = await db.users.findById(userId);
if (user.balance < amount) {
throw new Error('Insufficient funds');
}
// TODO: Add transaction logging
user.balance -= amount;
await user.save();
return { success: true };
}
Por qué está mal: Tres problemas críticos (detección de fraude, concurrencia, registro) están marcados pero no resueltos, lo que indica que esta función se entregó incompleta. Estos comentarios documentan problemas conocidos sin ningún seguimiento o cronograma para solucionarlos.
✅ Conforme:
async function processPayment(userId, amount) {
await fraudDetection.check(userId, amount);
return await db.transaction(async (trx) => {
const user = await trx.users
.findById(userId)
.forUpdate();
if (user.balance < amount) {
throw new Error('Insufficient funds');
}
user.balance -= amount;
await user.save();
await trx.auditLog.create({
userId,
action: 'payment',
amount,
timestamp: new Date()
});
return { success: true };
});
}
Por qué esto es importante: Todos los problemas marcados anteriormente están resueltos. La detección de fraude está implementada, las transacciones de base de datos gestionan la concurrencia y el registro de auditoría rastrea todos los pagos. El código está completo sin comentarios que se disculpen por lo que falta.
Conclusión
Eliminar los comentarios TODO y FIXME antes de fusionar el código a producción. Si el trabajo está incompleto, termínelo o cree incidencias en su sistema de gestión de proyectos con la prioridad y asignación adecuadas. Los comentarios en el código son invisibles para la planificación del proyecto y hacen que su base de código parezca perpetuamente inacabada.
.avif)
