“Skinny controllers, fat models” is a well-known practice in the Rails community that everyone seems to follow. However, as your application evolves and your models grow, maintaining them can become less enjoyable than it used to be.
In the last few years, the community has been proposing patterns and techniques to deal with big AR models. Presenters, Service objects, Concerns or DCI are only a few examples of solutions suggested to alleviate the pain caused by gigantic models.
In this talk, we will critically explore these patterns in their varied flavours. We'll compare them in order to expose their strengths and weaknesses and you'll learn when and how to use them to keep your Rails models as pleasurable to deal with as the first day.
Since several months ago, I've been collecting resources and researching about the big-models issue in Rails. Books, blog posts, conference talks, a lot have been said about this topic. I'm putting all of it together to try to distill a view as complete as possible which could help me (and hopefully others) to improve the maintainability of my AR models.
This talk is the result of that effort. I'm willing to share and discuss with the community some interesting insights about a topic many people are interested in.