Talks to Watch

GoRuCo 2012 Hexagonal Rails by Matt Wynne

17K views · Jul 1, 2012 · 29:23 · 1 HN recommender · 3 mentions · discussed 2012–2014

Matt Wynne's GoRuCo 2012 talk on why Rails apps get hard to change as they grow, and how a ports-and-adapters hexagonal architecture separates application logic from the framework.

Why Hacker News points people here: HN cites it as a resource for decoupling Rails code and for faster tests.

“I'd recommend watching (Hexagonal Rails GoRuCo talk) for one way to re-architect”HN comment, 2012

What Hacker News said 3

RecommendsjameskiltonAug 2012

“I'd recommend watching (Hexagonal Rails GoRuCo talk) for one way to re-architect”

Hexagonal architecture to avoid callback interdependencies.

Full comment

Was going to say the same thing. Models should not know or care about background queues or mailings, and callback use has always caused problems for me later on. Nothing against the OP, it does explain a common edge case that many people will run into and for that it's a good article, but I wish more people would see the violations of SRP going on here and try to lead people away from this trap. I'd recommend watching this video (Hexagonal Rails GoRuCo talk) for one way to re-architect to get away from these inter dependencies.

in “Rails, callbacks, workers, and the race you never expected to lose” · view on HN
Cites itkentwistleApr 2014

“Wynne: Hexagonal Rails”

Hexagonal Rails as a decoupling resource.

Full comment

Am I only the only one that doesn't find 'All tests in 4 minutes, all model tests in 80 seconds' very impressive? It sounds like a really long time to me. You know what could increase the speed dramatically.... decoupling. I also think decoupling phrased in the context of the Rails 2 to Rails 3 upgrade, where pretty much everything changed, makes perfect sense. Imagine just having a few wrapper classes that spoke to Rails and only having to adapt them. Sounds good to me! Bernhardt: Boundaries link Weirich: Decoupling from Rails link Wynne: Hexagonal Rails this video

Cites itdouglasfshearerDec 2014

Hexagonal Rails talk cited among sources for thin-model, service-layer style

Full comment

Rails used as intended can be a real pain to upgrade, I agree. Recently I have been developing applications in the "thin-model, thin-controller, with a service layer and external API wrappers" style, as espoused by Gary Bernhardt [1] and others [2] [3] [4] [5]. I upgraded to the latest Rails this morning on one app, and apart from swapping the Money gem to use the git repository, until they have a new version out with compatible dependency, it went smoothly. All the specs and acceptance tests passing with no alteration required. [1] link [2] link [3] link [4] link [5] this video