Hero background image
Как обеспечить качество и сопровождаемость кода с помощью анализаторов Roslyn

В этой статье рассказывается о том, как анализатор Roslyn может помочь вам отладить и улучшить качество игрового кода в Unity.

Анализатор Roslyn - это инструмент анализа кода, который использует API-интерфейсы платформы компилятора Roslyn для анализа кода C# в режиме реального времени. Анализатор может выдавать предложения по улучшению кода, предупреждения или ошибки на основе набора предопределенных правил. Он работает как плагин для Microsoft Visual Studio и Microsoft Visual Studio Code, дополняя возможности IntelliSense в обоих редакторах кода.

Анализаторы Roslyn основываются на предложениях, завершениях и информации о доступных API, предоставляемых IntelliSense, и содержат дополнительные инструменты для анализа и выявления потенциальных проблем в вашем коде. Кроме того, вы получите предложения по возможным исправлениям, используя API платформы компилятора Roslyn.

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

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

Примечание: Большая часть этой статьи относится только к Windows. Анализаторы Roslyn также доступны для использования с Visual Studio для macOS, но поддержка их проверки ограничена по сравнению с тем, что доступно для Windows.

Анализаторы Roslyn
Анализатор Roslyn в действии

Изображение выше взято из видеоролика, демонстрирующего типичное использование анализатора Roslyn. В этом примере анализ кода выявил неиспользуемую переменную. Разработчику становится известно об этой проблеме, поскольку счетчик переменных подчеркивается зеленым тильдом. При нажатии на нее отображается проблема и ссылка с вариантами ее устранения. В видеоролике разработчик решает удалить неиспользуемую переменную, основываясь на рекомендации.

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

Уровни серьезности анализатора
Уровни тяжести

Как видно из таблицы выше, каждый анализатор имеет настраиваемый пользователем уровень серьезности.

Анализаторы Roslyn
Настройка встроенных анализаторов

Существует несколько анализаторов Roslyn, но Visual Studio также поставляется с несколькими предустановленными. Настройки этих встроенных анализаторов можно изменять в двух местах. Для локальной версии Visual Studio настройки по умолчанию задаются в меню Инструменты > Параметры > Текстовый редактор > C# > Стиль кода > Общий. Вы можете изменить уровень серьезности с помощью диалогового окна, показанного на рисунке выше.

Анализаторы Roslyn
Взгляд на подсветку анализатора

На рисунке выше показан простой класс кода. Символ многоточия (три точки в строке) под буквами p и o в pos в строке 7 и оператор if в строке 11 означают предложение. Зеленая загогулина под distance - это предупреждение, а красная загогулина под двумя экземплярами xPos в строке 11 - ошибка. Предупреждения и ошибки также появятся в окне Список ошибок.

Шаги для демонстрации потенциальных исправлений
Показывая потенциальные исправления

Вы заметите, что изображение, показывающее настройки для встроенных анализаторов, переключается между только рефакторингом и предложением для предпочтений блока кода : Предпочитайте брекеты. Рефакторинг позволит только скрыть многоточие под оператором if.

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

Добавление файла .editorconfig

Если вы хотите обеспечить стиль кода для конкретного проекта, вы можете добавить файл .editorconfig, который поставляется вместе с проектом. Это может быть эффективным способом обеспечить соблюдение согласованных правил стиля кода в большой команде, состоящей из множества разработчиков.

Файл .editconfig позволяет переопределить настройки вашей версии Visual Studio через Tools > Options > Text Editor > C#. При необходимости можно даже вложить несколько файлов .editorconfig, поместив один в корень папки, а другой - в подпапку. При этом тот, что находится во вложенной папке, будет иметь приоритет над тем, что находится в корне.

В следующих разделах описано, как добавить файл .editorconfig.

Анализаторы Roslyn
Изменение уровня серьезности

Изменение уровня серьезности включенного анализатора в текстовом окне кода.

Анализаторы Roslyn
Через проводник решений

Щелкните правой кнопкой мыши проводник решений и выберите Новый элемент. На следующей панели выберите Installed > C# > General editorconfig File (по умолчанию).

Другой вариант - выбрать опцию Generate .editorconfig file из настроек на панели Tools > Options > Text Editor > C# (как показано на рисунке в разделе Configure built-in analyzers).

Анализаторы Roslyn
Ваш файл .editorconfig

Теперь, когда у вас есть файл .editorconfig, Visual Studio (версия для Windows) отображает редактируемый вид текстового файла под капотом. Изменения в этом файле повлияют на скрипты C# в папке, где сохранен .editorconfig, и во всех подпапках.

Использование консоли менеджера пакетов
Установка пользовательских анализаторов

Вы можете расширить функциональность, добавив к предустановленным анализаторам Roslyn. Анализаторы устанавливаются либо в виде пакетов NuGet, либо в виде расширений Visual Studio (файлы VSIX). Перейдите на сайт www.nuget.org для ознакомления с процессом установки пакетов NuGet. Популярный из них - StyleCop.Analyzers, который ищет проблемы со стилем в вашей кодовой базе.

Установите пакет в Visual Studio с помощью консоли менеджера пакетов через Tools > NuGet Package Manager > Package Manager Console. На странице www.nuget.org для каждого пакета анализатора показана команда, которую нужно вставить в консоль менеджера пакетов. Есть даже удобная кнопка для копирования текста в буфер обмена.

Анализаторы Roslyn
Сборки анализаторов

Сборки анализаторов установлены и отображаются в Solution Explorer в разделе References > Analyzers.

Анализаторы Roslyn
Установка анализаторов в качестве расширений VSIX

Другой вариант - установить анализаторы, поставляемые в виде расширений VSIX. В Visual Studio выберите Расширения > Управление расширениями.

Если вы знаете название расширения, используйте поле поиска, чтобы найти его, или просто найдите "analyzer". На изображении выше показан выбранный Comment Analyzer. Нажмите Download, чтобы установить расширение анализатора, выберите OK, чтобы закрыть диалоговое окно, и закройте все экземпляры Visual Studio, чтобы запустить программу установки VSIX.

Выберите Modify (Изменить ), чтобы начать установку. После завершения установки выберите Закрыть и снова откройте Visual Studio.

Анализаторы Roslyn
Проверка установки расширения

Если вы хотите проверить, установлено ли расширение, выберите Расширения > Управление расширениями. В диалоговом окне "Управление расширениями" выберите слева категорию "Установленные", а затем найдите расширение по имени.

Пишите чистый код
Дополнительные ресурсы

Эта статья посвящена встроенным анализаторам Roslyn, доступным в Visual Studio, но вы также можете создать свой собственный. Анализаторы, созданные на платформе .NET Compiler, могут значительно улучшить качество кода вашей команды.

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

Пара хороших дополнительных ресурсов от Microsoft включает это руководство по созданию собственного анализатора C# Roslyn и это видео на YouTube об анализаторах Roslyn.

Отладка в Unity

Дополнительные советы по отладке проекта Unity вы найдете в этих статьях:

Передовые технические электронные книги

Unity предоставляет ряд руководств, помогающих профессиональным разработчикам оптимизировать игровой код. Создайте руководство по стилю C#: Пишите более чистый код, который масштабируется собраны советы экспертов отрасли о том, как создать руководство по стилю кода, чтобы помочь вашей команде разработать чистую, читаемую и масштабируемую кодовую базу.

Еще одно популярное среди наших пользователей руководство - 70+ советов по повышению производительности с помощью Unity. В ней собраны советы по экономии времени, которые помогут вам улучшить повседневный рабочий процесс с Unity 2020 LTS - советы, которые могли пропустить даже опытные разработчики.

Найдите все передовые электронные книги и статьи Unity в хабе "Лучшие практики Unity".

Понравился ли вам этот контент?