Hexagonal Rails

Matt Wynne

Presented by: Matt Wynne

Talk Description

In the early days of a project, Rails absolutely dazzles.

Tragically, the very same forces that make it so easy to add new features to a brand new Rails application are the ones that start to hold you back as the number of features grows.

Your test suite gets slower and slower, and refactoring becomes more and more of a chore. Everything seems coupled together, and it's hard to see much of a structure other than the MVC triad.

In this talk, Matt explains why this happens, and shows you a way out, using a ports-and-adapters or hexagonal architecture to introduce a separation between your application's domain logic, and the Rails framework.

With practical examples, you'll learn how to apply techniques like:

  • tell-don't-ask
  • domain services
  • value objects
  • view models
  • presenters

This talk is suitable for advanced Rubyists who want to enjoy the benefits of Ruby's great Object-Oriented and functional programming features in their Rails applications.

Bio

Matt Wynne works as an independent programmer and consultant, helping teams like yours learn to enjoy delivering software to the best of their abilities. He is a core developer on the Cucumber project, and co-author of The Cucumber Book. He blogs at mattwynne.net and tweets as @mattwynne.