对DDD与DCI的突破性思辩
我来用简要的描述一下DDD和DCI的突破性思维。为什么需要DDD / MVC / DCI ,其实是对人类思维可控性的考虑。我们需要着重于DSL思维,要更加靠拢需求和用例。而DCI的提出让OLD DDD 重新考量,而让DDD提供了必要的几个概念,而这些概念也是为DCI框架提供的工具。
我们不能让DDD的一些概念绑定住,要突破并在实际开发中融合这些工具到实际的项目中来;前提是不能为了DCI而DCI,更不能为了DDD的概念而DDD。记得以前J2EE的发展历程,就是个悲剧。”山寨“的spring更迅猛的超过了”规范“。
四色 DDD DCI 融合起来后,包括CQRS,我们必然要舍弃改变和突破一些东西。比如Service,我个人认为可以让DCI中的角色的行为来代替,而DCI中的角色不一定要有领域实体充当。如下:
|
另一方面,我觉得场景中的必须是角色交互,而不是领域实体的交互。场景属于DSL的思考层面,更接近于需求和用例。而领域也是伟大的出现,但是不能为了领域而领域,为什么呢?因为场景是大哥用例是大哥。领域的存在是为了控制固定概念的部分,这样在某种成度上控制了一定的复杂性和提高了可控性,DCI解决了可变性和需求的问题。从某种意义上来说,“领域层(在DCI中可能不会太凸显领域层,不如OLD DDD那么凸显)” 是为了 DCI架构 服务的
[该贴被liontseng于2011-05-11 15:42修改过]