Сейчас ищут:

👨🏻‍💻 КОДИНГ [Thinknetica] Артем Нистратов - Метапрограммирование на Ruby (2023)

Moderator

Модератор
29 Янв 2026
9,493
1
38
thinknetica-artem-nistratov-metaprogrammirovanie-na-ruby-2023.72787.jpg

[Thinknetica] Артем Нистратов - Метапрограммирование на Ruby (2023)




Онлайн-воркшоп для Ruby-разработчиков, которые хотят освоить искусство метапрограммирования и понять, где, как и зачем его стоит применять

Программа воркшопа
День 1
. Метапрограммирование в Ruby и не только

Рассмотрим само понятие "метапрограммирование" в примерах на разных языках. Повторим наиболее распространенные техники и методы.

  • Сравним метапрограммирование в разных языках

  • Разберем базовые приемы метапрограммирования в Ruby:

    • method declarations (define_method & def)

    • code execution (eval & exec)

    • variable access (instance_variable_get/set, const_get/set)

    • class & module callbacks (included & extended)

  • Обсудим принципы применения метапрограммирования

  • Создадим небольшую библиотеку с DSL
В результате вы сможете:
Научиться использовать основной набор средств метапрограммирования в Ruby. Закрепить полученные сведения в небольшой библиотеке с самописным DSL в качестве домашнего задания.

День 2. Динамический Ruby

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

  • Рассмотрим разницу ключевых слов и методов на примерах:

    • def vs define_method

    • class/module vs Class.new/Module.new

  • Изучим способы создания "чистого" DSL

  • Применим объект binding на практике

  • Научимся создавать подклассы встроенных типов и разберем ситуации, когда это может быть полезно
В результате вы сможете:
Научиться динамически создавать расширения для классов и объектов из набора опций и параметров. Закрепить новые знания на практике путем улучшения API библиотеки из первой домашней работы.

День 3. Метапрограммирование в реальных проектах

Изучим код крупных проектов на ruby, использующих метапрограммирование. Сравним их слабые и сильные стороны с изученными на прошлых занятиях подходами.

  • Рассмотрим внутренности Ruby on Rails, Dry.rb, Rspec

  • Разберемся в нюансах вещей, оставшихся в стороне предыдущих тем:

    • Использование method_missing

    • method_added callback

    • Связь методов initialize и new

  • Подведем итоги по вопросам применения метапрограммирования
В результате вы:
Закроете оставшиеся пробелы по теме метапрограммирования в Ruby. Посмотрите на типичное применение метапрограммирования в известных проектах через призму полученного на занятиях опыта.

За время воркшкопа вы:

  • Научитесь правильно использовать основные средства метапрограммирования в Ruby

  • Посмотрите на привычные ruby-разработчику идиомы новым взглядом

  • Научитесь писать DSL и библиотеки с гибко настраивающимися функциями

  • Разберетесь с применением метапрограммирования на примере Ruby on Rails, Rspec, Dry.rb

Авторизуйтесь, чтобы посмотреть скрытый контент.

 

Создайте учетную запись или войдите, чтобы комментировать или скачивать материалы!

У вас должна быть учетная запись, чтобы оставлять комментарии

Зарегистрироваться

Создайте учетную запись. Это просто!

Авторизоваться

У вас уже есть аккаунт? Войдите здесь.

Похожие темы