Що нового?

Придбаний Метапрограммирование на Ruby [Thinknetica]

Інформація про покупку
Тип покупки: Складчина
Ціна: 3267 ГРН
Учасників: 0 з 15
Організатор: Відсутній
Статус: Набір учасників
Внесок: 226.5 ГРН
0%
Основний список
Резервний список

Gadzhi

Модератор
Метапрограммирование на Ruby [Thinknetica]

| |
|
|



Метапрограммирование на Ruby
Онлайн-воркшоп для 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
https://thinknetica.com/pro/workshop_metaprogramming_ruby
 
Угорі