Règle
Supprimer persistant TODO/FIXME commentaires
Non résolus TODO et FIXME commentaires indiquent
incomplets travail qui peut s'accumuler au temps.
Suivre problèmes dans votre problème suivi au lieu de de les les dans code.
Langues prises en charge : 45+Introduction
Les commentaires TODO et FIXME commencent comme des rappels utiles mais deviennent rapidement des éléments permanents dans la base de code. Ce qui était censé être une note temporaire devient un signal d'avertissement que tout le monde ignore. Ces commentaires indiquent un travail inachevé, des décisions reportées ou des problèmes connus que personne n'a correctement suivis. Lorsque vous livrez du code avec des commentaires TODO, vous livrez la reconnaissance que quelque chose ne va pas, sans aucun plan pour le corriger.
Pourquoi c'est important
Maintenabilité du code : Les commentaires TODO créent une ambiguïté quant à l'état de préparation et l'exhaustivité du code. Les nouveaux membres de l'équipe ne savent pas si ces commentaires représentent des problèmes urgents ou des notes vieilles de plusieurs années dont personne ne se soucie plus. Plus les TODO s'accumulent, moins ils sont pris au sérieux, créant un effet de vitre cassée où les standards de qualité s'érodent.
Suivi de la dette technique : Les problèmes cachés dans les commentaires ne sont ni priorisés, ni assignés, ni suivis. Votre système de gestion de projet indique que tout est terminé alors que la base de code contient des dizaines de notes « à corriger plus tard ». Sans un suivi approprié, les problèmes importants sont oubliés jusqu'à ce qu'ils causent des problèmes en production.
Implications de sécurité : Les commentaires TODO marquent parfois des implémentations de sécurité incomplètes ou des vulnérabilités connues. Un commentaire comme « TODO : ajouter une vérification d'authentification » dans le code de production signifie que vous avez livré une faille de sécurité en toute connaissance de cause. Ces marqueurs facilitent la tâche des attaquants qui examinent votre code pour trouver des points faibles.
Exemples de code
❌ 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 };
}
Pourquoi c'est incorrect : Trois problèmes critiques (détection de fraude, concurrence, journalisation) sont signalés mais non résolus, ce qui indique que cette fonction a été livrée incomplète. Ces commentaires documentent des problèmes connus sans aucun suivi ni échéancier pour les corriger.
✅ 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 };
});
}
Pourquoi c'est important : Tous les problèmes précédemment signalés sont résolus. La détection de fraude est implémentée, les transactions de base de données gèrent la concurrence, et la journalisation d'audit suit tous les paiements. Le code est complet, sans commentaires d'excuse sur ce qui manque.
Conclusion
Supprimez les commentaires TODO et FIXME avant de fusionner le code en production. Si le travail est incomplet, terminez-le ou créez des tickets suivis dans votre système de gestion de projet avec la priorité et l'assignation appropriées. Les commentaires dans le code sont invisibles pour la planification de projet et donnent à votre base de code un aspect perpétuellement inachevé.
.avif)
