Leveling up as a Ruby on Rails developer is hard
According to DHH, the secret to becoming a better Ruby on Rails developer is simple; you need to read a lot of software.
But where should you start?
I remember when I first tried to read a gem.
It was the Factory Bot gem,
which was a bit less than 1_000
commits long at the time.
I opened the code, and BOOM, I was completely lost.
What file should I read first?
Where does the program start, and where does it end?
I didn't understand much.
I really wanted to level up my Ruby and Ruby on Rails skills, so I had the idea to rebuild the Factory Bot gem from the first commit. I learned two things by doing this exercise:
- First, reading software truly is the best way to make substantial progress as a developer.
- Second, it was hard to learn all of this on my own. I wish I had a guide who could show me what the structure of a gem is and which files to look at first.
Let's do some pair-programming together
In this course, we will rebuild the turbo-rails gem step-by-step by pair-programming together.
By the end of the course, you will:
- Be able to understand the code of the whole turbo-rails gem, and contribute to it yourself.
- Be able to apply this knowledge to read and understand the source code of other Rails engines, such as Action Text or Active Storage.
- Be able to read a lot of code written by some very talented developers and become a better developer yourself!
What does the course cover?
In this course, we will:
-
Learn to create Ruby on Rails engines with the
rails plugin new
command. -
Use the
test/dummy
Rails application to develop our gem. -
Use
ActionView
,ActionCable
,ActiveJob
to achieve complex behavior and make the different parts of Rails work together, thanks to theRails::Engine
class. - Understand how security works in depth by default with turbo-rails.
- Write rake tasks leveraging the power of Rails templates to install our engine in a Ruby on Rails application.
- Write helper, channel, and controller tests to test our Rails engine.
- Become a turbo-rails expert by understanding all the source code.