Ruby Metaprogramming - Complete Course
What you'll learn
- Understand the magic behind Ruby on Rails.
- Write better, more elegant & efficient Ruby code and tests.
- Join the "Ruby Guru" pride.
- Write own DSL, gems, etc.
- Understand most of the code in popular gems.
Requirements
- Basic knowledge of Ruby.
- Ruby environment to run your code.
Description
Just like many other ruby developers, I wanted to learn metaprogramming to make the leap from Ruby novice to Ruby pro. But, approaching the subject felt a bit intimidating. I tried to learn metaprogramming several times and every time I tried, all available materials were referring to even more complicated and less known concepts such as: eigenclasses, singleton classes, ruby object model, classes being objects themselves, etc.
So, I spent several months reading about all these concepts and synthesised all available material. At the end, it just "clicked"! It turned out to be very simple! The problem was that there was no single resource where all this concepts were put together. So, I decided to produce this corse. I hope it will save your time and you will find it useful.
This video course will teach you ruby metaprogramming by introducing small, simple and less known ruby insights in each video. And once you learn them, metaprogramming will just start to make sense.
At the end of the course, you will:
- Be better Ruby developer who can write elegant code using Ruby's metaprogramming features.
- Make your test code more concise by writing test that dynamically generate code that covers all test cases.
- Be able to understand and explain the magic behind the code/syntax in all popular gems.
- Better understand the Ruby language.
- and of course write your own DSL's for your business domain (just like rspec, rake, etc.).
Course overview
Metaprogramming is such an integral part of the Ruby language, that in order to learn it, you need to understand the specific language features of Ruby. This features are less known and not covered in books. But, once you are introduced to them, metaprogramming starts to make sense. That's why, the course will start by introducing several key Ruby language insights. After this section, you will understand why is it that some method or variable is not available in some scope and available in others or how scope changes in your code and more.
In the second section of the course, we will cover all the SDK methods that are involved in metaprogramming. Along the way, we will go through several examples that demystifies magic behind most popular gem code as well.
In the last section of the course, we will put everything we've learnt into practice and will build our own rspec, domain specific language and some of the rails most popular magical methods.
Who this course is for:
- Ruby developers who are familiar with the ruby language basics, syntax, etc.
- Ruby on Rails developers who want to improve their code.
- Developers who want to understand the magic behind Ruby on Rails code.
- This course is probably not for you, if you are new to Ruby and want to learn the Ruby programming language basics.
Instructor
Said Abduvaliev is a an experienced full stack web developer with over 10 years experience. In the last 5 years, he has been involved in several successful startups built on Ruby on Rails. Latest involved projects: KupiKupon, BeSmarty, LocalOne, etc. (12M page views/day).
Said has experience writing enterprise systems using Java, PHP and Ruby. He has worked for and involved in project for United Nations Development Programme, Ministry of Economy, Tax Committee and others. He has always been a passionate teacher. Currently, he gives lectures at the University of Westminster.
Also, he enjoys front-end development. He writes his thoughts on JavaScript and jQuery in his popular "jQuery HowTo" blog.