Как и многие другие разработчики Ruby, я хотел научиться метапрограммированию, чтобы совершить скачок от Ruby-новичка до Ruby-профессионала. Но, приближаясь к этой теме, я чувствовал себя немного пугающе. Я пытался изучать метапрограммирование несколько раз, и каждый раз, когда я пытался, все доступные материалы относились к еще более сложным и менее известным концепциям, таким как: синглтон классы, объектная модель ruby, классы, являющиеся объектами самих себя и т. д.
Итак, я провел несколько месяцев, читая обо всех этих концепциях и синтезируя весь доступный материал. В конце просто "щелкнуло"! Это оказалось очень просто! Проблема была в том, что не было единого ресурса, на котором были бы собраны все эти понятия. Итак, я решил сделать этот курс. Я надеюсь, что это сэкономит ваше время, и вы найдете его полезным.
Этот видеокурс научит вас метапрограммированию в Ruby, представляя небольшие, простые и малоизвестные идеи Ruby в каждом видео. И как только вы их изучите, метапрограммирование начнет обретать смысл.
В конце курса вы:
- Станете лучшим разработчиком Ruby, который может писать элегантный код, используя возможности метапрограммирования.
- Сделаете свой тестовый код более кратким, написав тест, который динамически генерирует код, который охватывает все тестовые случаи.
- Научитесь понимать и объяснять магию кода/синтаксиса во всех популярных случаях.
- Лучше изучите язык Ruby.
- И, конечно же, напишите свои собственные DSL для своего бизнес-домена (точно так же, как rspec, rake и т. д.).
Метапрограммирование настолько неотъемлемая часть языка Ruby, что для его изучения необходимо понимать особенности этого языка. Эти функции менее известны и не описаны в книгах. Но как только вы познакомитесь с ними, метапрограммирование обретет смысл. Вот почему курс начнется с ознакомления с несколькими ключевыми идеями языка Ruby. После этого раздела вы поймете, почему какой-то метод или переменная недоступны в одной области видимости и доступны в другой, или как изменяется область действия в вашем коде, и многое другое.
Во втором разделе курса мы рассмотрим все методы SDK, задействованные в метапрограммировании. Попутно мы рассмотрим несколько примеров, которые демистифицируют магию самого популярного кода.
В последнем разделе курса мы применим все, что узнали, на практике и создадим собственный rspec, предметно-ориентированный язык и некоторые из самых популярных магических методов Rails.