NDepend
![]() | Эта статья может быть слишком технической для понимания большинства читателей . ( июнь 2022 г. ) |
![]() | |
Разработчик(и) | NDepend |
---|---|
Стабильная версия | 2024.1
|
Операционная система | Окна |
Тип | Качество программного обеспечения |
Лицензия | Коммерческий, Собственный |
Веб-сайт | независимо |
NDepend — это инструмент статического анализа кода C# и .NET для управления качеством и безопасностью кода. Инструмент предлагает большое количество функций, от веб-отчетов CI/CD до контроля качества и визуализации зависимостей. По этой причине сообщество называет его «швейцарским армейским ножом» для разработчиков .NET.
Функции
[ редактировать ]


Основные особенности NDepend:
- Интерактивные веб-отчеты обо всех аспектах качества кода .NET и примеры отчетов о безопасности здесь . Отчеты могут быть построены на любой платформе: Windows , Linux и MacOS.
- [Импорт проблем Roslyn Analyzers https://www.ndependent.com/docs/reporting-roslyn-analyzers-issues ]
- Качественные ворота
- Интеграция CI/CD с Azure DevOps , GitHub Action , Bamboo , Jenkins , TeamCity , AppVeyor
- Визуализация зависимостей (с использованием графиков зависимостей и матрицы зависимостей )
- Умная оценка технического долга
- Правило декларативного кода для запроса C# LINQ (CQLinq) .
- Метрики программного обеспечения (NDepend в настоящее время поддерживает более 100 метрик кода: цикломатическая сложность ; афферентная и эфферентная связь ; реляционная связность Google ; рейтинг страниц типов .NET; процент кода, охваченного тестами и т. д.)
- Импорт данных о покрытии кода из покрытия Visual Studio, dotCover, OpenCover, NCover, NCrunch.
- Все результаты сравниваются с базовым уровнем, что позволяет пользователю сосредоточиться на вновь выявленных проблемах.
- Интеграция с Visual Studio 2022, 2019, 2017, 2015, 2013, 2012, 2010 или может работать автономно через VisualNDepend.exe, параллельно с JetBrains Rider или Visual Studio Code .
Правила кода с помощью запросов LINQ (CQLinq)
[ редактировать ]
Запросы живого кода и правила кода с помощью запросов LINQ являются основой NDepend, все функции широко используют его. Вот несколько примеров запросов кода:
- Базовый класс не должен использовать производные:
// <Name>Base class should not use derivatives</Name>
warnif count > 0
from baseClass in JustMyCodeTypes
where baseClass.IsClass && baseClass.NbChildren > 0 // <-- for optimization!
let derivedClassesUsed = baseClass.DerivedTypes.UsedBy(baseClass)
where derivedClassesUsed.Count() > 0
select new { baseClass, derivedClassesUsed }
- Избегайте усложнения сложных методов ( цикломатическая сложность исходного кода ):
// <Name>Avoid making complex methods even more complex (source code cyclomatic complexity)</Name>
warnif count > 0
from m in JustMyCodeMethods where
!m.IsAbstract &&
m.IsPresentInBothBuilds() &&
m.CodeWasChanged()
let oldCC = m.OlderVersion().CyclomaticComplexity
where oldCC > 6 && m.CyclomaticComplexity > oldCC
select new { m,
oldCC,
newCC = m.CyclomaticComplexity,
oldLoc = m.OlderVersion().NbLinesOfCode,
newLoc = m.NbLinesOfCode,
}
Кроме того, инструмент предоставляет действующий редактор запросов CQLinq с автодополнением кода и встроенной документацией.
См. также
[ редактировать ]- Матрица структуры проектирования
- Список инструментов для статического анализа кода
- Программная визуализация
- Исходный след
Внешние ссылки
[ редактировать ]NDepend проверен сообществом .NET
[ редактировать ]- Выход из зоны боли: статический анализ с помощью NDepend.aspx (менеджер программы, Microsoft) обсуждает NDepend
- Обсуждение переполнения стека: использование NDepend
- Абхишек Сур, на NDepend
- Метрики кода NDepend от Андре Локера
- Статический анализ с помощью NDepend Генри Кордеса
- Хендри Люк обсуждает непрерывное качество программного обеспечения с NDepend
- Джим Холмс (автор книги «Мощные инструменты разработчика Windows») на сайте NDepend.
- Марио Романо обсуждает метрики и матрицу зависимостей с NDepend
- Обзор Nates Stuff
- Скотт Митчелл (журнал MSDN), Исследование кода с использованием NDepend
- Трэвис Иллиг на NDepend
Книги, в которых упоминается NDepend
[ редактировать ]- Гириш Сурьянараяна, Ганеш Самартьям и Тушар Шарма. Рефакторинг для запахов проектирования программного обеспечения: управление техническим долгом (2014)
- Марцин Кавалерович и Крейг Бернтсон. Непрерывная интеграция в .NET (2010 г.)
- Джеймс Эйвери и Джим Холмс. Мощные инструменты для разработчиков Windows (2006 г.)
- Патрик Колдуэлл и Скотт Хансельман . Лидер кода: использование людей, инструментов и процессов для создания успешного программного обеспечения (2008)
- Йогеш Шетти и Самир Джаясвал. Практическая .NET для финансовых рынков (2006 г.)
- Поль Дюваль. Непрерывная интеграция (2007)
- Рик Лейнекер и Ванесса Л. Уильямс. Универсальное настольное руководство по Visual Studio 2008 для чайников (2008 г.)
- Патрик Смаккиа. Практические .Net 2 и C# 2: используйте платформу, язык, фреймворк (2006 г.)