Domain-Driven Design

DDD 就是领域驱动设计(Domain-Driven Design)。

架构发展阶段

服务器后端发展三个阶段:

  • UI+DataBase的两层架构,这种面向数据库的架构(上图table module )没有灵活性。

  • UI+Service+DataBase的多层SOA架构,这种服务+表模型的架构易使服务变得囊肿,难于维护拓展,伸缩性能差

  • DDD+SOA的事件驱动的CQRS读写分离架构,应付复杂业务逻辑,以聚合模型替代数据表模型,以并发的事件驱动替代串联的消息驱动。真正实现以业务实体为核心的灵活拓展。

DDD 革命性

领域模型准确反映了业务语言,而传统J2EE或Spring+Hibernate等事务性编程模型只关心数据, 这些数据对象除了简单 setter/getter 方法外,没有任何业务方法,被比喻成失血模型, 那么领域模型这种带有业务方法的充血模型到底好在哪里?

DDD 最大的好处

接触到需求第一步就是考虑领域模型,而不是将其切割成数据和行为,然后数据用数据库实现, 行为使用服务实现,最后造成需求的首肢分离。 DDD让你首先考虑的是业务语言,而不是数据。

重点不同导致编程世界观不同。

拓展阅读

https://www.jianshu.com/p/b6ec06d6b594