[外文理解] DDD创始人Eric Vans:要实现DDD原始意图,必须CQRS+Event Sourcing架构。
来源:互联网 发布:我的世界手机怎么做js 编辑:程序博客网 时间:2024/04/30 02:37
原文:http://www.infoq.com/interviews/Technology-Influences-DDD#
要实现DDD(domain drive design 领域驱动设计)原始意图,必须CQRS+Event Sourcing。
CQRS+Event Sourcing其实不但是一种全新思想,将可能颠覆Java或C#现有的编程体系。
使用传统JavaEE或Spring + Hibernate这样的框架,是无法实现DDD原始意图的,这个DDD创始人Eric Vans已经说过:2012年Eric Evans关于技术如何影响DDD的会话
提供基于Jdonframework实现的CQRS 源码,ES部分稍微拓展一下即可:Robot.rar,文章见DDD DCI和领域事件
或者选用新的编程语言Scala,文章:Scala的event-sourced和CQRS案例代码
有人说,我一定要用Spring来实现,那么会导致什么后果呢?
因为Spring不支持Domain Event,只能将外部接口直接注入到领域模型,很多接口会污染领域模型,最后领域模型还是被外币接口或架构绑架了。
这严重违背DDD中聚合根是语言核心,编程代码必须反映统一语言
这个反复重申的要旨,难道我们重申这个只是理论喊口号吗?如果它不如此具有颠覆性,我们反复强调它干吗?如果不是因为现在所谓经典做法完全违反这种要旨,我们苦口婆心地说它干吗呢?
当然,该PPT也去除了Hibernate等ORM注解,因为它也严重绑架干扰了领域模型,干扰领域模型如实成为统一语言。
所以,尽管Jdon两年前就在讨论DDD CQRS ES,并且也推出这样的开源框架,这些都是一种探索,是不是代表未来不能确定,但是如果这是未来,我相信这是JavaEE或Spring必须跟上的,但是Java C#语言本身带来的限制,还是不如新语言Scala等要优雅。尽管jdonframework使用Disruptor实现了领域事件,也是通过领域模型的注入实现,虽没有Scala的Actor那么直接,但是性能和简洁不亚于Actor。
如果各位有意在自己项目中实施DDD,而且不改用框架,那么出来的效果会很差,还不如本文开始批评的贫血模型,把业务方法都放入Service中。
如果你对JavaEE认识或面向对象设计OO不够Strong,那么也请不要选择DDD,你遇到的概念和思路转变不是象学习一门语言那么简单,项目有风险,实施需谨慎。
另外一篇文章可读 http://www.jdon.com/44491
2 0
- [外文理解] DDD创始人Eric Vans:要实现DDD原始意图,必须CQRS+Event Sourcing架构。
- DDD、CQRS、Event Sourcing
- 软件设计架构之DDD,SOA,原始,REST,Actor,CQRS
- DDD#Clarified CQRS
- WeText项目:一个基于.NET实现的DDD、CQRS与微服务架构的演示案例
- DDD CQRS架构和传统架构的优缺点比较
- DDD CQRS架构和传统架构的优缺点比较
- DDD CQRS架构和传统架构的优缺点比较
- WHY CQRS and EVENT SOURCING
- DDD CQRS与传统CRUD
- ddd
- ddd
- ddd
- ddd
- ddd
- ddd
- ddd
- ddd
- 伪分布式hbase配置
- 再议指针---------函数回调(qsort函数原理)
- 转载电影《利益风暴》影评
- requirejs进阶(一)
- aa
- [外文理解] DDD创始人Eric Vans:要实现DDD原始意图,必须CQRS+Event Sourcing架构。
- Struts2的 ActionContext && ServletActionContext 区别
- 项目图片的备份
- 两个"##"到底啥意思啊
- bzoj2705[SDOI2012]Longge的问题
- POJ 3613 Cow Relays (floyd + 矩阵快速幂)
- 定时创建文件追加内容删除文件
- 冒泡排序与简单选择排序——Java实现
- 荣耀3C LTE(4G) set_immutable.list删除 VIPER4Android安装