Commands, Services and Logic: An Action-Based Class Design for Large Rails Apps


Details
Writing clean code means keeping classes small, but as your Rails app grows, that becomes impossible while staying within the bounds of Model-View-Controller. The Rails Way says we should push our logic down into the models, but do we really want our models to have hundreds of lines of code in them?
Join us as we go beyond MVC adding new layers of object-oriented design that shrink classes, increase testability and provide clear templates for junior team members to follow. We'll see how pulling query logic out of the models allows for more explicit control of database transactions and how separating business logic from query logic gives us pure classes that are 'embarrassingly testable'. Beginners and experts alike will leave with a new set of tools from this original talk.
Presentation by Brad Urani, Principle Engineer @ Procore.

Commands, Services and Logic: An Action-Based Class Design for Large Rails Apps