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

昨天我参加了一次关于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应用程序变得太大你不能将某些部分拆分成另一个应用程序(我相信它被称为面向服务的架构?)并且只是从你的主应用程序向它发出请求? 或者如果流量过重,可能使用负载均衡器+多个服务器。

你联系的Victor Savkinpost很好:

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

我的理解是,六角形体系结构的根源在于Rails作为实际应用中的“传递机制”(可能是其中之一)。 这是尝试将您的应用程序与Rails隔离开来,并且远远超出人们在将应用程序拆分为带引擎的小块时所要做的事情。

DHH(Rails的创建者)将Hex架构视为“ TDD引发的设计损坏 ”,并且已经与TDD(Kent Beck)和Martin Fowler的创建者进行了一系列会谈 ,你应该一定要关注。

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