Я использовал NDepend в течение последних нескольких лет. В основном это инструмент анализа зависимостей, и поэтому это может помочь вам с большим количеством проблем, связанных с зависимостью.
Одним из основных моментов, которые я использую для этого, является проверка зависимостей между моими сборками, типами и методами. Это помогает мне следить за тем, не связано ли соединение между типами, а также помогает мне выявить возможности рефакторинга.
Приступая к массивному рефактору, например. извлечение шаблонов для других сборок, это позволяет вам понять, что зависит от того, что вам не нужно делать старым «переместите мои типы на другую сборку, затем попытайтесь скомпилировать и посмотреть, какие перерывы»
NDepend также имеет отличная визуальная матрица для просмотра такого рода информации.
Кроме того, он имеет фантастический язык запросов, CQL, который позволяет писать пользовательские запросы. Это могут быть простые вещи, такие как «показать мне все методы, которые называют этот метод», запросам, чтобы выделить мертвый код, запросы на сложность, сложность связи и т. Д., И многое другое.
В свою очередь, он может быть интегрирован в процесс сборки, поэтому вы можете создавать предупреждения/сбои на основе запросов CQL, например «сбой сборки, если метод имеет более 100 строк кода, но без комментариев» (это пример - я не предлагаю, чтобы эта конкретная метрика была хорошей вещью).
Он также может импортировать данные о покрытии кода и визуально отображать области с небольшим охватом кода, а также позволять запускать запросы CQL с информацией о покрытии кода (например, показать мне методы с охватом менее 70% кода)
вы также можете загрузить текущую сборку вашего проекта, и предыдущая сборку и выполнять запросы между ними, такими как «показать мне все новых типов, которые имеют покрытия кода < 70%» - это поможет вам ввести более жесткие правила на существующих кодовых базах.
Это фантастический инструмент, и его не так уж сложно изучить. Это страшно в начале, просто из-за огромного объема информации, которую он дает, но настоятельно рекомендуется.
Возможно, вы захотите добавить теги (например, платформа/язык/технология NDepend для), чтобы этот вопрос появлялся на любимых тегах людей. –