GoRuCo 2012 Hexagonal Rails by Matt Wynne
Why Hacker News recommends it
HN cites it as a resource for decoupling Rails code and for faster tests.
What it is
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.
Recommended by 1 HN commenters across 1 different months, 2012 to 2014.
What Hacker News said
Recommends jameskilton · 2012-08 · on “Rails, callbacks, workers, and the race you never expected to lose”
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.
Cites kentwistle · 2014-04 · on “Slow database test fallacy”
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 douglasfshearer · 2014-12 · on “Rails 4.2 released”
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]