👩‍💻 Roslyn 👩‍💻

Уровень материала: 🐓 #senior

На этой неделе выходил очень полезный ролик про использование Roslyn в связке с Unity. Кто интересуется и следит за C#, уже наверняка знакомы с Roslyn. А в инфополе Unity Roslyn упоминается не часто, разве что в беседах между разработчиками. Так что это весьма редкий контент про весьма полезный инструмент.

Roslyn — это компилятор для C# и Visual Basic, предоставляющий API для компиляции, рефакторинга, статического анализа и генерации кода.

Он позволяет производить поиск потенциальных ошибок, нарушений стиля или уязвимостей. Автоматизировано исправлять найденные проблемы в коде. А также генерировать всякий boilerplate, что бывает часто нужно, например, при разработке на ECS или при реализации DI (см. Pure DI).

При этом все эти автоматизации можно привязать к пайплайнам в CI/CD и прогонять при мержах или сборках.

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

Можно даже написать простой кодоген "на коленке" из "строк и палок" как в этом видео 📺

Почему это не так удобно, как Roslyn, подробно и наглядно рассказано в классном докладе с DotNext 📺

Roslyn преобразует исходный код в синтаксическое дерево (Syntax Tree), где каждый узел соответствует определённой синтаксической конструкции (класс, метод, выражение и т.д.).

Также Roslyn предоставляет доступ к семантической модели (Semantic Model), которая позволяет анализировать типы данных, символы и контекст использования. Например, это позволяет искать ссылки на методы. ———————————— #unity #gamedev #development #roslyn #tool #compiler #analyse #геймдев #разработка #анализ #инструмент #рекомендация #видео

👩‍💻 Roslyn 👩‍💻 | Сетка — социальная сеть от hh.ru