TGViewer
Computer Science Center Computer Science Center @compscicenter_ru · 2.33K subscribers
Post #279 1.22K
Публикуем запись открытой лекции «Всё, что вы хотели знать о рефлексии в Kotlin: что это, как часто её используют, почему она так долго работает и как её сделать быстрее».

Лектор – Анастасия Бирилло – программист-исследователь JetBrains Research в лаборатории ML4SE (Machine Learning Methods in Software Engineering), выпускница и преподавательница CS центра.

В начале видео есть небольшие проблемы со звуком, но с 42 секунды всё в порядке.

На этой лекции мы не будем рассматривать все возможности, которые предоставляет рефлексия в общем случае. Мы разберём довольно конкретную задачу «Как найти все классы, помеченные аннотацией и\или имеющие определённый супертип?» (и аналогичную для функций). Как бы вы решали такую задачу? Ведь если мы будем использовать стандартную рефлексию, то время старта приложения будет слишком долгим. Если захотим использовать Annotation processing, то ускорим процесс, но столкнёмся с некоторыми неудобствами и ограничениями в работе. Если вариантов больше не осталось, то приходите на лекцию послушать про новый подход — плагин для компилятора Kotlin, который позволяет перенести решение этой задачи в compile-time без существенных ограничений и решать ее в run-time за O(1). Кроме того, с помощью него можно решить данную задачу в общем виде и искать сущности по любому (почти) условию.
За время лекции мы познакомимся с понятием рефлексии в контексте данной задачи, рассмотрим как часто её решают на примере анализа 10K самых популярных Kotlin репозиториев и обсудим плюсы и минусы существующих решений. После чего разберёмся, что же такое плагины для Kotlin компилятора, почему именно они могут помочь решить данную задачу эффективно и разберём, как устроен плагин Reflekt, решающий данную задачу. Вместе мы погрузимся во внутренности работы компилятора, разберём все тонкости реализации плагина и не самые очевидные проблемы, возникающие при разработке плагинов, о которых нигде не пишут :)

После лекции слушатели будут иметь представление о рефлексии и существующих подходах её использования в контексте выше упомянутой задачи; познакомятся с процессом разработки плагинов для Kotlin компилятора и получат базовые знания о том, как в целом устроены плагины и процесс компиляции.
More from @compscicenter_ru
  1. Sep 12, 2022Математическая статистика – это раздел математики, разрабатывающий методы анализа данных д…
  2. Aug 23, 2022Семантика языков программирования — ещё один открытый курс на нашем канале YouTube. Препод…
  3. Aug 9, 2022Два семестра курса «Дополнительные главы по алгоритмам» увлекут всех ценителей теоретическ…
  4. Jul 25, 2022Открываем свежие лекционные материалы курса «Функциональное программирование»! Курс знаком…
  5. Jul 11, 2022Открываем долгожданный материал по параллельному программированию! Евгений Калишенко – авт…
  6. Jun 27, 2022Весной в программе Computer Science Center проходил курс по проектированию программного об…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →