Я получил бесплатную годовую лицензию в обмен на использование и обзор NDepend. Будьте уверены, эти мысли и мнения принадлежат мне.

Трудно получить наглядное представление о своей кодовой базе. Разработчикам это тяжело. Это сложно для людей с техническим образованием. Я также обнаружил, что для нетехнических людей это практически невозможно понять.

При этом, если вы работаете или принимаете решения по программному обеспечению, очень важно понимать, с чем вы имеете дело.

Будет ли моя архитектура масштабироваться? Есть ли дыры в безопасности? Сколько там технического долга? Какова производительность разработчика сегодня по сравнению с прошлым годом, пять лет назад?

Хотя инструменты не могут ответить на все эти вопросы, они могут ответить на некоторые из них. NDepend - один из таких инструментов. Вот мои мысли после того, как я поигрался с ним около месяца.

Установка

Для загрузки перейдите на сайт NDepend. NDepend - это лицензионный продукт, поэтому вам придется либо испытать 14-дневную пробную версию, либо купить лицензию на профессиональную версию. Я использую версию 2019.3.

Шаги по установке как VS Extension:

  1. Скачать NDepend
  2. Разархивировать
  3. Запустите NDepend.VisualStudioExtension.Installer.exe.
  4. Выберите версию VS, на которую вы хотите установить
  5. Нажимаем установить, подождите полминуты
  6. Вы должны увидеть диалоговое окно, в котором говорится, что он был установлен правильно.

Добавление в проект

Для любого проекта, для которого вы хотите использовать NDepend, откройте его в Visual Studio.

В строке меню щелкните Extensions = ›NDepend =› Присоединить новый проект NDepend к текущему решению VS.

Появится диалоговое окно, в котором будет указан путь к файлу проекта NDepend и какие сборки будут проанализированы.

Нажмите кнопку «Анализировать», и через короткое время вы должны увидеть свой отчет.

Вы можете просматривать как в VS, так и в отчете на основе HTML. Отчет VS более интерактивен. Вот главный экран отчета VS для меня в моем проекте TinRoll.

Поскольку это довольно небольшой проект, здесь не так много информации, которую можно было бы найти и отобразить. Долг на уровне 1,22%, неплохо, всего 9 правил нарушено.

Я хотел лучше понять, что это может быть в более крупном проекте. Итак, я загрузил nopCommerce, хорошо известное решение для корзины покупок с открытым исходным кодом, построенное на ASP.NET.

Здесь много информации, поэтому я остановлюсь только на некоторых основных случаях. Пожалуйста, посетите их сайт для получения дополнительной информации.

Вы заметите, что рядом с большинством строк статистики стоит отметка «нет различий». Этот инструмент будет отслеживать вашу статистику по мере развития вашего приложения, помогая вам узнать, в правильном ли направлении вы движетесь.

Если вы нажмете на «Высокие проблемы» в правом нижнем углу, появится следующий диалог, показывающий, какие правила были нарушены.

Большинство из этих правил, с которыми я согласен, - это не лучшие практики, а то, что я делаю время от времени, потому что могу. Вы можете щелкнуть по каждому из них и посмотреть, что именно вызывает нарушение правил.

NDepend также определит, какие пространства имен имеют самый низкий рейтинг технического долга. Это может помочь вам узнать, на чем сосредоточить действия по очистке.

NDepend повышает видимость вашего проекта

Что мне действительно нравится в NDepend, так это то, что он дает мне много информации о моей кодовой базе. Я могу не согласиться с некоторыми вещами, которые он пометил как критические (я могу настроить строгость правил), но это дает мне возможность просматривать свою базу кода и взаимодействовать с ней.

После создания этого первоначального отчета я потратил около 30 минут на то, чтобы просто просмотреть его. Я хотел знать, что он думает.

Видимость технического долга

В центре и в центре отчета NDepend находится процент долга, Рейтинг, сколько дней требуется для достижения отметки A.

В своей молодой карьере я работал с кодовыми базами, содержащими много технических долгов. С ними не очень весело работать.

Один из способов добиться этого - технический долг, который трудно измерить количественно, и большинство нетехнических специалистов его не понимают. Тем не менее, во многих случаях графиком и бюджетом руководят люди, не обладающие техническими знаниями. На рефакторинг никогда не бывает «времени» или «денег», поэтому технический долг продолжает расти.

Незначительные причуды

Пользовательский интерфейс иногда может быть немного не интуитивно понятным. Я мог получить доступ к необходимой мне информации, но было время для первоначального увеличения.

У некоторых текстов не было правильной цветовой схемы (черный на черном), и их было трудно читать.

Не поддерживает открытый исходный код, потому что для его использования требуется лицензия.

Не поддерживает F #, что, вероятно, не является большой проблемой для многих. Но я использую его время от времени и считаю, что статистика по нему тоже полезна.

Сладкое место NDepend

Я считаю, что целевая аудитория NDepend - это компании, занимающиеся разработкой предприятий. Если бы я работал в командах, у которых был этот инструмент, я считаю, что мы были бы намного лучше осведомлены о коде, который создавали. Намного меньше шансов внести то небольшое изменение, которого, как мы знаем, не следует делать, потому что это легко.

NDepend также обеспечивает поддержку Azure DevOps, но у меня не было возможности попробовать его.

Последние мысли

NDepend - полезный инструмент для понимания того, как в настоящее время выглядит ваша кодовая база и где ее можно улучшить. Он предоставляет вам много информации и контекста, надеясь, что вы увидите области, в которых необходимы улучшения.

Управлять кодом сложно. Мы проповедуем необходимость таких инструментов, как git, IDE и конвейеры сборки, но зачастую качество нашего кода ничем не проверяется. NDepend - это инструмент, который может восполнить этот пробел.

Первоначально опубликовано на https://thesharperdev.com 19 января 2020 г.