To people not familiar with Rails, it will look like there are a lot of magic and wizardry involved with developing web apps and APIs with Rails. A lot of trusting the framework to work. Running a couple of commands in the terminal will result in a (very basic) CRUD web app that can be easily deployed. A coder can easily develop an application without understanding what is happening. I wanted to know how it is put together and how it all works together. I was curious about the inner workings of Rails.
I wanted to get a better understanding of the inner working of Rails. By understanding how Rails is structured and designed, I felt like I can fully utilize most of the features of the framework and be more productive at developing software. In addition, I wanted to improve my knowledge in software architecture. I can learn some design patterns and architectural patterns that I can apply in other projects or tech stack.
Luckily I found a course online that helped with that. This blog series and accompanying work is based on the knowledge I gained through following along the Owning Rails course and implementing features that were not included in the course.
Some of the things I learned by going through this exercise:
- Opening up a ruby gem.
- Rails is made up of multiple gems. ActiveRecord, ActiveModel, ActiveSupport, Railties, ActionPack, Action View, ActionCable, ActiveStorage, and many more.
- Various design patterns.
- Dynamically building SQL queries.
- Various Ruby specific features.
- Request and response cycle.
- Improved at debugging errors.
- Many more…
If you are curious about the inner workings of Rails please follow along and read my other posts in the Rebuilding Rails series.