代码改变世界

领域驱动设计常见术语

2015-07-06 23:01  Spring.Guo  阅读(663)  评论(0编辑  收藏  举报

DDD : Domain Driven Design 

CQRS :Command Query Responsibility Seperation(命令查询职责分离)的缩写

                 把查询数据 同程为 Query (查询), 只提供根据聚合的ID 进行查询,查询结果 以DTO 形式返回

                 改变状态叫做 Command (命令)   , 提供Create,Update ,Delete 操作。

CRUD : (Create, Read, Update, Delete) 增查改删

ES  :Event Sourcing 缩写,事件溯源

         记录聚合产生的每一个事件,可以根据这些事件来追溯源头。

         例如:一个用户的聚合根,对用户的添加事件,修改名称事件,修改密码事件等,依次保存为3条记录,那么通过这3条记录,就可以查看“用户聚合”每次事件前后的状态变化。

         事件溯源都是以新增的方式保存数据,而通常的通过CUD方式保存的数据,其实是保存的数据最终状态,而在这个最终状态之前究竟发生了什么,其实并不知道。

         事件溯源 ,可以参考 SVN 等代码版本管理工具,通过每次的提交记录,可以查看代码从最终状态到初始状态的变化情况。

DTO   : (Data Transfer Object)  

              当我们查询数据时,可能在UI 上显示的,只是领域对象的 少部分 属性字段(或数据),  DTO 对象是领域 对象的投射

Domain Objects :(领域对象)

Saga : 长时处理过程 (Long-Running Process)

          自我理解:一个任务设计有多个处理步骤,完成所有步骤可能耗时很长。