L'outil NDepend peut aider à trouver du code inutilisé dans une base de code .NET. Clause de non-responsabilité : Je suis l'un des développeurs de cet outil.
NDepend propose d'écrire Règle de code sur les requêtes LINQ (CQLinq) . Autour de 200 règles de code par défaut sont proposées, 3 d'entre elles étant consacrées à code inutilisé/mort détection :
NDepend est intégré dans Visual Studio 2008/2010/2012/2013, ainsi ces règles peuvent être vérifiés/navigués/modifiés directement dans l'IDE . L'outil peut également être intégré dans votre processus de CI et il peut construire rapports qui montrera les règles violées et les éléments de code coupables.
Si vous cliquez sur les 3 liens ci-dessus vers le code source de ces règles, vous verrez que celles concernant les types et les méthodes sont un peu complexes. En effet, elles détectent non seulement les types et méthodes inutilisés, mais aussi les types et méthodes utilisés uniquement par des types et méthodes morts inutilisés (récursifs).
C'est analyse statique d'où le préfixe Potentiellement dans les noms des règles. Si un élément de code est utilisé uniquement après réflexion, ces règles pourraient le considérer comme inutilisé, ce qui n'est pas le cas.
En plus d'utiliser ces 3 règles, je conseillerais de mesurer la couverture du code par les tests et de s'efforcer d'avoir une couverture complète. Souvent, vous verrez que le code qui ne peut pas être couvert par des tests, est en réalité inutilisé/mort le code qui peut être écarté en toute sécurité. Ceci est particulièrement utile dans les algorithmes complexes où il n'est pas clair si une branche de code est atteignable ou non.