我最近遇到了罗伯特·马丁(Uncle Bob)关于如何根据用例构建rails应用程序的主题演讲。我发现这非常有趣。
以下是主题演讲的链接:Architecture: the Lost Years
这是一个示例项目,根据Robert Martin在主题演讲中提到的原则构建应用程序:Guru Watch
我想知道是否有完善的rails应用程序以这种方式构建(用例驱动方法/实体 - 控制 - 边界架构/从前端解耦后端)< / p>
答案 0 :(得分:2)
好吧,我无法分享代码,但我可以指出你的方向。我们一直在我们的应用程序中使用这个gem: https://github.com/collectiveidea/interactor
我受到Martin的主题演讲的启发,这个应用程序的开发非常顺利:)。 在ActiveRecord和Business Logic分离的情况下,我们执行了以下操作:
我们的业务逻辑中的每个类都有一些DatabaseEntity对应的类。这个对应的是使用另一个类 - 我们的适配器到ActiveRecord。它正在查询相应的ActiveRecord模型并将ActiveRecord实例转换为业务逻辑类的实例。
毕竟,大部分代码都集中在这个适配器中。