【发布时间】:2012-03-29 11:49:39
【问题描述】:
最近与一位同事就在 Rails 应用程序中设计和编码模型的不同方法进行了辩论,这让我想到了DCI in the context of Rails。
但是,我似乎无法完全理解整个概念,即使在查看了this example application 之后也是如此。
目前,在编写 Rails 应用程序时,我倾向于或多或少地使用“by the book”。
所以我想问几件事--
- 什么是 DCI,与 MVC 一起实施时,与普通的旧 MVC(以及 Rails 中的普通 ActiveRecord)相比,它有什么优势?
- 如何在 Rails 中实现它(或者换句话说,所有模块的作用)?
编辑
我想在 RoR 的上下文中进一步扩展我的问题 - 是否推荐 Rails 中的模型和控制器之间的另一个抽象级别?它在不同规模的应用中的普及程度如何?
【问题讨论】:
-
您的问题非常广泛,很难回答。在很多地方,您似乎还没有完全了解 DCI 导致在 DCI 环境中回答某些问题变得更加困难。如果这是目标,我可以帮助你处理 DCI 的问题,但你需要缩小范围
-
我最想了解是 DCI。至于 Rails 的实现,一个简单的例子,甚至两行解释都很好。
-
好问题。直到读到这篇文章,我才知道我最近一直渴望的范式有一个名字。我一直在查看我维护的代码(我没有编写)并思考“这需要的是数据和行为之间的分类分离。”我想这正是 DCI 想要做的。
-
不是专门针对 DCI,而是通过谷歌搜索“Rails 服务对象”将体验如何应用类似 DCI 的概念。并自我推销:sitepoint.com/using-wisper-to-decompose-applications
-
如果您仍在寻找与 RUby 相关的 DCI 示例,请查看受几个 DCI 问题启发的演示文稿(这是其中之一)youtube.com/watch?v=ZUADinlqHwk
标签: ruby-on-rails design-patterns architecture dci