Painless Rails
complexity management system
Presuppositions
- Rails framework is awesome! It help us deliver value to our clients faster, and we love it for that.
- But there's a problem: the code of long-lived Rails projects becomes super-complicated. It shouldn't be like that!
- It is time to learn from all the diversity of existing complexity management techniques and converge them into a unified engineeringly optimal way of doing things.
- «Painless Rails» is the approach to code organization in Ruby on Rails applications, engineered to manage complexity at any scale without compromising the joy of development.
Principles
- Strong foundatation - the approach is based on works of great minds like Martin Fowler, Eric Evans, Rich Hickey, Grady Booch and others
- Respect Rails - the approach follows Rails convention, re-uses its tooling, and doesn't fight it in any way.
- 80/80 - 80% of features of 80% of Rails applications are typical. They can be coded with a single uniform optimal approach.
- «Painless Rails» comes with a solid supply tool bag of fundamental principles helping to develop a custom approach in non-standard situations.
Scalable complexity management system
- Minimizes accidental complexity
- Provides a healthy low-overhead alternative to callbacks
- Allows you to handle essential complexity gradually
- Prevents complexity clumps from appearing
Learn the approach
Currently «Painless Rails» is available as a book. It is a draft, but it alerady describes most of the required techniques.
The book content is going to be revamped. In doubts? Read more about the book.
Also, there will be a series of workshops to learn the approach in practice:
- Painless controllers
- Painless models & business logic organization
- Painless testing & interaction with external services
Meet the author
- 16 years of professional experience with Rails
- Rails applications architecture explorer
- Regular speaker at Ruby conferences
- Former GitLab developer advocate