zoukankan      html  css  js  c++  java
  • [外文理解] 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


  • 相关阅读:
    解决SecureCRT中文显示乱码
    最新ubuntu10.10更新源
    向linux内核添加系统调用新老内核比较
    Field requires API level 5 (current min is 1) 问题的解决
    ubuntu 搜索文件方法(find命令)
    ubuntu12.04终端全屏
    .classpath 文件中的excluding属性
    eclipse中的.project 和 .classpath文件的具体作用
    Windows Mobile项目编译很慢情况的解决(VS2008)
    windowsphone7高级编程中提到的地址
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/6906998.html
Copyright © 2011-2022 走看看