[外文理解] DDD创始人Eric Vans:要实现DDD原始意图,必须CQRS+Event Sourcing架构。
原文: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
[外文理解] DDD创始人Eric Vans:要实现DDD原始意图,必须CQRS+Event Sourcing架构。相关推荐
- DDD 领域驱动设计-如何 DDD?
注:科比今天要退役了,我是 60 亿分之一,满腹怀念-??? 前几天看了园友的一篇文章<我眼中的领域驱动设计>,文中有段话直击痛点:有人误认为项目架构中加入 Repository,Doma ...
- 直播 | 小爱通用理解团队负责人雷宗:小爱同学中控意图理解
「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...
- 【DDD/CQRS/微服务架构案例】在Ubuntu 14.04.4 LTS中运行WeText项目的服务端
在<WeText项目:一个基于.NET实现的DDD.CQRS与微服务架构的演示案例>文章中,我介绍了自己用Visual Studio 2015(C# 6.0 with .NET Frame ...
- (转)DDD CQRS和Event Sourcing的案例:足球比赛
原文链接: https://www.jdon.com/44815 在12月11日新的有关DDD CQRS和Event Sourcing演讲:改变心态- 以更加面向对象视角看待业务领域建模中,作者以足球 ...
- Lind.DDD敏捷领域驱动框架~Lind.DDD各层介绍
回到目录 Lind.DDD项目主要面向敏捷,快速开发,领域驱动等,对于它的分层也是能合并的合并,比之前大叔的框架分层更粗糙一些,或者说更大胆一些,在开发人员使用上,可能会感觉更方便了,更益使用了,这就 ...
- DDD入门一:什么是DDD?
DDD(Domain-Driven Design 领域驱动设计)是由Eric Evans最先提出,目的是对软件所涉及到的领域进行建模,以应对系统规模过大时引起的软件复杂性的问题.整个过程大概是这样的, ...
- 「领域驱动设计」DDD,六边形架构,洋葱架构,整洁架构,CQRS的整合架构
这篇文章是软件架构编年史的一部分,一系列关于软件架构的文章.在这些文章中,我写了我对软件架构的了解,我如何看待它,以及我如何使用这些知识.如果您阅读了本系列以前的文章,那么本文的内容可能更有意义. 大 ...
- DDD为什么能火起来?DDD 与微服务到底是啥关系!
来源:https://www.cnblogs.com/Courage129/p/14839544.html DDD为什么能火起来? 我们先不讨论DDD的定义, 先梳理一下DDD火起来的背景, 根据我学 ...
- php的ddd,在MVC框架中实现DDD – PHP
在mvc中,模型是一个层,它包含所有的域业务逻辑. 在域驱动设计中,业务逻辑可以分为各种构建块. 在域驱动设计域模型中. A domain model is a system of abstracti ...
最新文章
- SVN:This client is too old to work with working copy…解决的方法
- centos 查找nginx_centos7肿么查看已经安装nginx
- php判断版本号大小,通用javascript代码判断版本号是否在版本范围之间_javascript技巧...
- CMap的使用(转)
- js 实现pdf在线阅读
- vim 常用的快捷键
- Opencv LBP特征
- Hive开启WebUI
- 【USACO】Team Tic Tac Toe(C题)
- 如何重置Mac的蓝牙模块以解决连接问题
- Android 高级混淆和代码保护技术
- 【C++ STL应用与实现】23: 如何使用std::mem_fn (since C++11)
- 追涨而不被套的4大绝招[转载]
- 手机测试软件 lg g5,LG G5评测:系统功能初体验
- 警惕!QQ盗号又出新招 不改密码只转移QQ币
- SQL Server备份、完整备份,差异备份、日志备份
- 个人成长 | 总结2018--展望2019.
- 模拟CMOS集成电路设计入门学习(6)
- 在安装Centos时如何选择磁盘的分区?
- 基于Vue的高德离线地图开发--省市县