Sanity on Rails — How to write maintainable Rails applications in 2017

By Michael Kohl

Elevator Pitch

Rails is not your application! Don’t overcomplicate your development life by trying to make everything fit within its MVC structure. A framework provides tools and abstractions, use them to build your business logic, don’t force your business logic to fit into them.


As web applications grow in scale and complexity, people start realizing that many parts of their domain-specific code do not fit neatly into Rails’ MVC structure. In recent years certain patterns around so-called “service objects” emerged, and this talk will explore various types, as well as some heuristics on when to use them. Additionally it will try to shed some light on how Rails actually fits into the picture and how it’s best used in a way that complements your business logic without influencing it.


Target audience

This talk is best suited for intermediate Rails developers who want to improve their application design by following new emerging best practices in the Rails community (i.e. various types of service objects, like query objects, form objects, presenters/decorators, policy objects etc). Novice Rails developers should also be able to benefit from this talk, though it’s not recommend for absolute newcomers.