Курс находится на модерации. Данные могут быть неактуальны.
Сложность
Сложность
Продвинутый
Тип обучения
Тип обучения
Курс
Формат обучения
Формат обучения
С проверкой домашнего задания
Трудоустройство
Трудоустройство
Отсутствует

Стоимость курса

4 900 ₽
нет рассрочки

Формат

3 вебинара длительностью 2 ч

Практика
Часть практики вы будете делать прямо на занятии, а часть – самостоятельно после вебинара.

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

Результат

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

  • Научитесь правильно использовать основные средства метапрограммирования в Ruby
  • Посмотрите на привычные ruby-разработчику идиомы новым взглядом
  • Научитесь писать DSL и библиотеки с гибко настраивающимися функциями
  • Разберетесь с применением метапрограммирования на примере Ruby on Rails, Rspec, Dry.rb

Требования к участникам

1. Опыт разработки на Ruby от 1 года

2. Профиль на GitHub

3. Базовые навыки работы с командной строкой и git

Что вы получите после обучения

Приобретаемые навыки
1
Метапрограммирование в Ruby
2
Динамический Ruby
3
Рассмотрим внутренности Ruby on Rails, Dry.rb, Rspec

Вас будут обучать

Разработчик с 11-летним опытом

11 лет создает и поддерживает продукты, созданных на разных языках и технологиях, в таких сферах, как обслуживание платежных транзакций, здравоохранение и электронная коммерция.
Сотрудничал с такими компаниями, как JetRuby, Profitero, eComCharge.
Пройдя путь до архитектора распределенных систем, собрал опыт решения разнообразных проблем в аутсорс и продуктовых фирмах.
Ruby - основной и любимый язык для разработки ПО, успешно решает на нем задачи последние 10 лет.

Образовательная организация

Онлайн-школа обучения разработке для студентов уже имеющих базовые знания программирования.

9 лет Онлайн-школа Thinknetica существует с 2013 года
2000+ Студентов прошли наши курсы и вышли на работу.
18 профессиональных разработчиков участвуют в создании и поддержке курсов
9 из 10 выпускников рекомендуют наши курсы

Программа курса

3 вебинара
Практические задания
Общение с автором и ответы на вопросы

День 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 и научимся создавать объекты с поведением, зависимым от окружения, будь то переменные из контекста выполнения или настройки запуска программы. Подробно рассмотрим использование proc и lambda, при создании DSL и отдельно, в отрыве от какого либо контекста.

  • Рассмотрим разницу ключевых слов и методов на примерах: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. Посмотрите на типичное применение метапрограммирования в известных проектах через призму полученного на занятиях опыта.

Рейтинг курса

3
рейтинг
0
0
0
0
0

Может быть интересно

обновлено 18.04.2024 09:49
Мета- программирование на Ruby

Мета- программирование на Ruby

Оставить отзыв
Поделиться курсом с друзьями