- Регистрация
 - 1 Авг 2019
 
- Сообщения
 - 5,416
 
- Реакции
 - 157,426
 
- Тема Автор Вы автор данного материала? |
 - #1
 
		
		
		
			Голосов: 0
		
	
			
				
					
	ОПИСАНИЕ:
Онлайн-воркшоп для 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
 
СКАЧАТЬ: