领域和场景到底有多少不同,可以这样想:当领域一个角色,一个交互的时候,他到底与场景有什么不同呢?
对于DDD中的面向领域中的“领域”,我们要看看实际情况中,我们得到的领域,到底是不是客观的。
客观领域——(领域专业人员)——》?——(建模设计人员)——》模型
从实际中,建模设计人员看到的是什么?是领域的一个描述,一个解析,这个领域是从领域专业人员中得出的。正如banq之前所说,我们建模设计人员不可能精通每个领域,所以我们需要需求分析,客户资讯,而领域专业人员可以是软件公司的,可以是用户公司的,可以是建模人员自己。
从上图我们可以看出建模设计人员,很少直接接触客观领域(当然,把领域专业人员与建模设计人员合并也是有的),他们得到的永远是一个主观概念,而正因为如此,这个概念是变化无常的,无论在开发过程中,还是在开发完成后。所以对于建模设计人员来说,他们所面对的领域是别人所给出的,是一个不稳定的领域(即?=主观的领域)。而敏捷开发是把领域专业人员与建模设计人员之间的传递缺失减到最少,而且响应快,但变化依然存在。
那么回过头来,建模设计人员+领域专业人员=?我觉得是某些领域的建模专家。如,银行借贷存取领域的,批发零售的,论坛领域的,医疗领域。这种人员适合,成本大批发型软件,如金蝶财务一类。而前面的适合多种不太大领域的。
在以上的论述下,DDD中domain就是?了。为什么jivejdon领域中只含有基本的论坛基本的东西呢?因为banq从客观中获得的论坛就是这样,另外一个侧面说,banq获得自己的需求就是这个。
[该贴被SpeedVan于2010-12-16 10:01修改过]