Rails 这个 Aggregates 概念是否可行?

chenge · 2014年06月04日 · 最后由 knwang 回复于 2014年06月05日 · 2044 次阅读

流行做法都是直接用 AR,稍微大一点的程序就显得代码有些乱。DDD 的概念我觉得还是有价值的,只是那本书实在难读。 有采用 DDD 的同学么?

DDD for Rails Developers. Part 3: Aggregates http://www.sitepoint.com/ddd-for-rails-developers-part-3-aggregates/

稍大一点的程序不一定就复杂,复杂度也有不同,例如广度与深度的不同。 比如同一个数据 model 需要显示成 50 种格式,这种复杂可以用 view 的 decorator 解决。硬要加一个 service layer 并不是特别有意义。

DDD 适用于复杂的业务逻辑,进销存,工作流,生产线自动化,等等,Rails 一开始就是针对另外一种开发的。小型创业项目,而且大部分项目是面向消费者的。所以在这方面有欠缺是正常的。而且如果业务逻辑复杂度到不了那个程度,也没有必要非要硬套 DDD。

对于一般的 Rails 项目,DDD 的最大价值在于 Ubiquitous Language - 用业务和应用域的语言来命名类,方法和变量,而不是用技术或者 Rails 的语言来命名,来增进易读性。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号