Мне нужен инструмент, который я могу запустить, который покажет мне список неиспользуемых методов, переменных, свойств и классов. Классы CSS будут дополнительным бонусом.
Я слышал, что FXCop может это сделать? или NDepend или что-то еще?
Мне нужен инструмент, который я могу запустить, который покажет мне список неиспользуемых методов, переменных, свойств и классов. Классы CSS будут дополнительным бонусом.
Я слышал, что FXCop может это сделать? или NDepend или что-то еще?
Посмотрите ReSharper.
Анализ кода в VSTS будет генерировать предупреждения об этом во время процесса сборки. Вы можете настроить его для рассмотрения предупреждений как ошибок.
Вы можете использовать ReSharper для поиска неиспользуемого кода и Выбор пылесоса для поиска неиспользуемого CSS.
Инструмент NDepend может помочь найти неиспользуемый код в базе данных .NET. Отказ от ответственности: я являюсь разработчиком этого инструмента.
NDepend предлагает написать Правило кода над запросом LINQ (CQLinq). Примерно 200 правил кода по умолчанию, 3 из которых посвящены обнаружению неиспользуемого/мертвого кода:
NDepend интегрирован в Visual Studio, поэтому эти правила могут быть проверены/просмотрены/отредактированы прямо внутри IDE. Инструмент также может быть интегрирован в ваш процесс CI, и он может построить reports, в котором будут отображаться нарушенные правила и элементы кода преступления.
Если вы нажмете эти 3 ссылки выше на исходный код этих правил, вы увидите, что те, которые относятся к типам и методам, немного сложны. Это связано с тем, что они обнаруживают не только неиспользуемые типы и методы, но также типы и методы, используемые только неиспользуемыми мертвыми типами и методами (рекурсивными).
Это статический анализ, поэтому префикс Потенциально в именах правил. Если элемент кода используется только через отражение, эти правила могут считать его неиспользованным, что не так.
В дополнение к использованию этих 3 правил я бы посоветовал измерить охват кода тестами и стремиться к полному охвату. Часто вы увидите, что код, который не может быть охвачен испытаниями, на самом деле неиспользуемый/мертвый код, который можно безопасно отбросить. Это особенно полезно в сложных алгоритмах, где неясно, доступна ли ветвь кода или нет.
Gendarme также имеет разные правила для поиска неиспользуемого кода.