#.net #static-analysis #ndepend
Вопрос:
Недавно я скачал ndepend и провел анализ проекта с открытым исходным кодом, в котором я участвую.
Я не знал, куда теперь смотреть дальше — немного визуальной и информационной перегрузки, и оказалось, что я даже не знаю, с чего начать.
Может ли кто-нибудь предложить отправные точки?
- Какую информацию мне следует искать в первую очередь?
- Что указывает на проблемы в коде (в ЗНАЧИТЕЛЬНОЙ степени)?
- Что бы это были за низко висящие плоды, которые можно сразу увидеть?
Ответ №1:
На плакате Скотта Хансельмана / Стюарта Селарьера / Патрика Колдуэлла с показателями ndepend есть некоторая полезная информация. Вместо того, чтобы пытаться разбить все используемые эвристики, я бы сосредоточился только на нескольких за раз, начиная с «зоны боли / зоны бесполезности» и цикломатической сложности.
Существует также подкаст, в котором рассказывается о некоторых основах этого инструмента.
Между этим и запуском NDepend в нескольких различных проектах вы, возможно, сможете начать собирать полезные данные, которые вы можете превратить в идеи.
Ответ №2:
При запуске с NDepend самое важное-понять, какое правило кода над LINQ (CQLinq) может принести ваш магазин, позволяя вам определять запросы к вашему коду и правилам. Здесь вы найдете краткое изложение и исходный код всех 200 правил кода по умолчанию.
Вторая по важности вещь, на которую следует обратить внимание,-это зависимости, как в представлении графика зависимостей, так и в представлении матрицы зависимостей. Как только вы освоите эти 2 представления, вы сможете точно определить, где код хорошо продуман или нет, и где разработчики допустили ошибку.
Затем придет время изучить более подробные функции, такие как возможность сравнения 2 версий вашей базы кода, различные показатели кода и причины их полезности, обеспечение статической чистоты и неизменности, автоматическое управление охватом тестирования…
Комментарии:
1. IME на самом деле невозможно «освоить эти 2 представления» в версии eval. Матрица закроется сама по себе после 7 щелчков (я кричу на монитор после третьего раза, когда это происходит), и график, скорее всего, будет невероятно плотной почтовой маркой, которую вы не сможете увеличить. Я хотел бы, чтобы была надлежащая оценка этого продукта — каждый восторженный отзыв в Интернете написан кем-то с бесплатной копией, и хотя я вовсе не имею в виду тратить деньги на инструменты, я никогда, никогда не мог убедить себя, что NDepend полезен. Возможно, это потому, что версия eval на самом деле бесполезна.
2. Просто обратитесь за поддержкой к поставщику и получите свою 2-недельную оценку
3. Наконец, с версией 4 мы переключились с режима eval с неограниченным по времени ограничением функций на полностью функциональный режим eval с 14-дневным ограничением по времени.
4. Патрик — это круто. Конечно, после вашего первоначального ответа выше, я купил V3, и я обновился до V4 в тот день, когда вы выпустили его… 🙂
Ответ №3:
Отличная пара веб-роликов (30-минутные видеоролики), в которых Патрик Смаккья и Филип Экберг рассказывают о некоторых функциях NDepend и о том, как их использовать:
http://codebetter.com/patricksmacchia/2012/10/31/two-screencasts-on-how-to-demystify-spaghetti-code/