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