Уровень материала: 🐓 #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 #геймдев #разработка #анализ #инструмент #рекомендация #видео