Rails:如何让我的rails项目成为六角形轨道项目?

时间:2013-11-15 21:44:18

标签: ruby-on-rails hexagonal-architecture

我昨天参加了一次关于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. 要使我的项目成为一个六角形Rails项目,我在哪里放置这些模块(什么文件夹?我创建一个特定名称的新文件夹吗?)

  2. 这是否更适合内部维护?为安全起见?

  3. 据我所知,如果rails应用程序变得太大,你不能将某些部分拆分成另一个应用程序(我相信它被称为面向服务的架构?)并且只是从你的主应用程序向它发出请求?或者,如果流量过重,可能会使用负载均衡器+多台服务器。

1 个答案:

答案 0 :(得分:1)

你联系的Victor Savkin帖子说得很好:

  

六边形体系结构有助于将应用程序与传递机制分开。

我的理解是,六角形架构的根源在于Rails作为一种“交付机制”的视角。 (可能是其中之一)用于您的实际应用。 这是尝试将您的应用程序与Rails隔离开来,并且远远超出人们在使用引擎将应用程序拆分为更小的部分时所做的尝试。

DHH(Rails的创建者)将Hex架构视为" TDD induced design damage"并且有一个series of talks与TDD(肯特贝克)和马丁福勒的创造者,你一定要看。

我对你问题的回答是:不要。关于六角形建筑的谈话正在进行中。除非你迫切需要将你的应用程序代码与Rails分开,否则我建议你观看会谈并等到尘埃落定,看看会发生什么。