Aikido

Comment supprimer les commentaires TODO et FIXME persistants de votre base de code

Maintenabilité

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é.

FAQ

Des questions ?

Que se passe-t-il si je dois réellement marquer quelque chose pour plus tard ?

Créez une tâche dans votre outil de suivi (Jira, GitHub Issues, Linear) avec le contexte, la priorité et l'affectation. Liez le numéro de la tâche dans un commentaire si nécessaire : // Voir la tâche #1234 pour le refactoring prévu. Cela rend le travail visible pour la gestion de projet et garantit qu'il est correctement priorisé.

Que se passe-t-il si je dois réellement marquer quelque chose pour plus tard ?

Créez une tâche dans votre outil de suivi (Jira, GitHub Issues, Linear) avec le contexte, la priorité et l'affectation. Liez le numéro de la tâche dans un commentaire si nécessaire : // Voir la tâche #1234 pour le refactoring prévu. Cela rend le travail visible pour la gestion de projet et garantit qu'il est correctement priorisé.

Existe-t-il des utilisations acceptables des commentaires TODO ?

Dans les pull requests en brouillon ou les branches de fonctionnalités qui ne sont pas encore fusionnées, les commentaires TODO aident à suivre le travail incomplet pendant le développement. Avant de fusionner vers la branche principale (main), complétez le travail ou convertissez les TODOs en problèmes suivis. Ne fusionnez jamais les commentaires TODO dans les branches de production.

Comment gérer les TODOs dans le code hérité ?

Auditez-les par lots. De nombreux TODOs anciens sont obsolètes ou déjà corrigés. Pour les problèmes valides, créez des tickets et supprimez les commentaires. Établissez une politique interdisant l'ajout de TODOs dans le nouveau code. Cela empêche l'accumulation pendant que vous travaillez sur la dette technique existante.

Qu'en est-il des commentaires HACK ou OPTIMIZE ?

Ceux-ci souffrent des mêmes problèmes que les commentaires TODO. HACK indique un code dont vous avez honte mais que vous avez quand même livré. OPTIMIZE suggère une préoccupation prématurée concernant les performances. Soit corrigez le code, soit acceptez-le tel quel sans commentaires d'excuse. Documentez les exigences de performance réelles dans les tickets, pas dans les commentaires de code.

Sécurisez-vous maintenant.

Sécuriser votre code, votre cloud et votre runtime dans un système centralisé unique.
Détectez et corrigez les vulnérabilités rapidement et automatiquement.

Pas de carte de crédit requise | Résultats du scan en 32 secondes.