Speaker Deck

Build Complex Domains in Rails

by Mike AbiEzzi

Published September 25, 2014 in Programming

Rails models are simple, but your domain’s models might not be as simple as Rails would like them to be.

Modeling large, complex domains "the Rails way” can cause some serious pain. Ruby and Rails are supposed to make developers happy. Let's not allow “the Rails way” and complex domains to take the “happy” out of ruby development.

Join me as I’ll walk through a set of easy to implement Domain Driven Design (DDD) pointers. The goal is to make sure your model’s business logic stay under control no matter how complex your domain is or gets. Your application will be able to sustain steady growth and dramatically reduce business rule related defects, all the while, staying easy to grok.

I'll walk you through:

How communicating the domain properly will make an imprint on your codebase and product.
How creating boundaries around clusters of models will make your code easier to understand, manage, and interact with.
How immutable objects eliminate unnecessary complexities.
How data store access expresses the domain's intentions.
How to represent natural business transactions between models.