领域驱动设计常见术语
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)
自我理解:一个任务设计有多个处理步骤,完成所有步骤可能耗时很长。