L'IA écrit du code mort ? L'outil deadcode de l'équipe Go le trouve en une seule commande

✍️ OpenClawRadar📅 Publié: August 18, 2026🔗 Source
Ad

Les agents de codage IA sont excellents pour générer du code, mais ils laissent aussi souvent du code mort derrière eux — fonctions inutilisées, branches inaccessibles et helpers orphelins qui alourdissent votre codebase et perturbent les lecteurs futurs. L'outil deadcode de l'équipe Go le trouve en une seule commande.

Qu'est-ce que deadcode ?

deadcode est un outil Go officiel (faisant partie de golang.org/x/tools) qui effectue une analyse d'inaccessibilité sur tout le programme. Il signale les fonctions et méthodes qui ne peuvent jamais être appelées depuis un point d'entrée de votre programme. Ce n'est pas qu'un simple linter — il réalise une véritable analyse de flux de contrôle et de pointeurs pour déterminer l'accessibilité.

Comment trouver le code mort écrit par l'IA

Exécutez ceci depuis la racine de votre module :

go run golang.org/x/tools/cmd/deadcode@latest ./...

Cela analyse tout votre module et affiche une liste des fonctions inaccessibles, par exemple :

deadcode: unreachable: main/helpers.go:23:7:func helperNeverCalled()

Vous pouvez également passer des packages spécifiques ou des options :

  • -test : inclure les fichiers de test dans l'analyse
  • -filter : ne signaler que les fonctions correspondant à une expression régulière (par ex. -filter '_dead')
  • -json : sortie en JSON pour l'intégration avec des outils CI
Ad

Pourquoi votre agent IA laisse du code mort

Les agents LLM génèrent le code de manière probabiliste — ils écrivent souvent des fonctions utilitaires qu'ils n'appellent jamais, ou sauvegardent un refactor avec une copie de l'ancien code. Comme le code compile et que les tests passent, il est facile de le manquer. deadcode le détecte de manière déterministe.

Supprimer le code mort en toute sécurité

Après avoir exécuté deadcode, examinez chaque fonction inaccessible manuellement. Une fonction peut être inaccessible car elle est utilisée via la réflexion, invoquée depuis go:linkname, ou fait partie d'une API publique — l'outil a une option -reflect pour tenir compte de la réflexion. Mais dans la plupart des cas, si elle n'est pas appelée depuis main (ou les tests), vous pouvez la supprimer en toute sécurité.

Ensuite, exécutez go test ./... pour confirmer que rien n'est cassé. L'élimination du code mort est l'une des victoires les plus faciles pour l'hygiène du codebase — et elle rend la sortie de votre agent plus propre pour la prochaine itération.

📖 Lire la source complète : HN AI Agents

Ad

👀 See Also