4

我昨天参加了一个关于扩展 Rails 的聚会,其中一个主题是 Hexagonal Rails。但是,我只做 Rails 一年,对 MVC 结构真的很舒服(也许太舒服了),所以我不太了解适配器和消息队列是什么。

这是一篇关于它的文章:http: //victorsavkin.com/post/42542190528/hexagonal-architecture-for-rails-developers

还有一张照片:http ://blog.mattwynne.net/wp-content/uploads/2012/06/hexagonal_architecture_sketch.jpg

据我了解,我认为这是关于解耦各个部分,以便专门过滤操作并将其传递到应用程序的某些位置,而不是为所有内容配备一个中央“路由器”。我认为这会最大限度地减少 ActiveRecord 的使用和大量模块的创建?我对此很困惑,所以我有几个问题:

  1. 为了使我的项目成为 Hexagonal Rails 项目,我将这些模块放在哪里(什么文件夹?我是否创建一个具有特定名称的新文件夹?)

  2. 这更多是为了内部维护吗?为了安全?

据我所知,如果 Rails 应用程序变得太大,您不能将某些部分拆分为另一个应用程序(我相信它称为面向服务的架构?)然后从您的主应用程序向它发出请求?或者,如果流量太重,也可以使用负载均衡器 + 多台服务器。

4

1 回答 1

1

您链接的 Victor Savkin 帖子说得好:

六边形架构有助于将应用程序与交付机制分开。

我的理解是,Hexagonal Architecture 的根源在于 Rails 只是您实际应用程序的“交付机制”(可能是众多机制之一)。这是一种尝试将您的应用程序与 Rails 隔离开来,并且远远超出了人们在使用引擎将应用程序拆分为更小的部分时所做的事情。

DHH(Rails 的创建者)将 Hex 架构视为“ TDD 导致的设计损坏”,并且与 TDD 的创建者(Kent Beck)和 Martin Fowler 进行了一系列谈话,您绝对应该观看。

我对你的问题的回答是:不要。关于六边形架构的对话现在正在发生。除非您迫切需要将应用程序代码与 Rails 分开,否则我建议您观看讨论并等到尘埃落定,看看这一切会产生什么结果。

于 2014-06-04T02:11:26.630 回答