Regola
Rimuovere residui DA FARE/DA CORREGGERE commenti
Irrisolti TODO e Da correggere commenti indicano
incompletezza lavoro che può si accumulino nel corso il tempo.
Tieni traccia problemi in tuo problema tracciatore anziché di lasciarli li nel codice.
Linguaggi supportati: 45+Introduzione
I commenti TODO e FIXME nascono come promemoria utili, ma diventano rapidamente elementi fissi nel codice. Quella che doveva essere una nota temporanea si trasforma in un segnale di allarme che tutti ignorano. Questi commenti indicano lavoro incompiuto, decisioni rinviate o problemi noti che nessuno ha monitorato adeguatamente. Quando si rilascia codice contenente commenti TODO, si sta ammettendo che qualcosa non va, senza alcun piano per risolverlo.
Perché è importante
Manutenibilità del codice: i commenti "TODO" creano ambiguità riguardo allo stato di preparazione e alla completezza del codice. I nuovi membri del team non sanno se questi commenti indichino problemi urgenti o note risalenti a anni fa di cui nessuno si cura più. Più i "TODO" si accumulano, meno vengono presi sul serio, creando un effetto "finestre rotte" che porta all'erosione degli standard di qualità.
Monitoraggio del debito tecnico: i problemi nascosti nei commenti non vengono classificati per priorità, assegnati né monitorati. Il sistema di gestione del progetto mostra che tutto è completo, mentre il codice contiene decine di note del tipo “risolvere in seguito”. Senza un adeguato monitoraggio, i problemi importanti vengono dimenticati finché non causano problemi in produzione.
Implicazioni per la sicurezza: i commenti "TODO" a volte indicano implementazioni di sicurezza incomplete o vulnerabilità note. Un commento del tipo "TODO: aggiungere controllo di autenticazione" nel codice di produzione significa che hai rilasciato una falla di sicurezza con piena consapevolezza. Questi indicatori rendono più facile per gli aggressori che esaminano il tuo codice individuare i punti deboli.
Esempi di codice
❌ Non 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 };
}
Perché è sbagliato: tre problemi critici (rilevamento delle frodi, concorrenza, registrazione degli eventi) sono stati segnalati ma non risolti, il che indica che questa funzione è stata rilasciata incompleta. Questi commenti documentano i problemi noti senza alcun sistema di tracciamento né tempistiche per la loro risoluzione.
✅ 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 };
});
}
Perché è importante: tutti i problemi segnalati in precedenza sono stati risolti. È stato implementato il sistema di rilevamento delle frodi, le transazioni del database gestiscono la concorrenza e la registrazione di audit tiene traccia di tutti i pagamenti. Il codice è completo e non contiene commenti giustificativi su ciò che manca.
Conclusione
Rimuovi i commenti TODO e FIXME prima di integrare il codice nell'ambiente di produzione. Se il lavoro è incompleto, portalo a termine oppure crea delle segnalazioni tracciabili nel tuo sistema di gestione dei progetti, assegnando loro la priorità e il responsabile adeguati. I commenti nel codice non vengono considerati nella pianificazione del progetto e fanno sembrare il tuo codice perennemente incompleto.

