醍醐灌顶了朋友们
第一次写ddd还是
一路走来 丢失了东西 现在倒是也能找回来 只是有点可惜了 选择比努力更重要
独立功能
应用层:组织业务逻辑
领域:实体对象=领域,业务核心
数据仓库:
- 不影响业务
- 封装了数据操作,内部实现不需要关心
- 形式:数据库提供对外接口 ,不管需要什么数据 直接从仓库中拿
实体:
- 属性 / 业务方法 封装到一起 充血模型,实体作用一目了然
实体与值对象:
- stock --- stockId --- stockDetail,访问detail只能通过stock对象访问,detail来源固定
- 业务:造成实体状态变化的过程,新增/删除库存
- 业务方法和数据仓库的方法 区分开
隔离:接口 不需要关心实现
- 隔离第三方系统的交互,通用接口来隔离,不需要关心细节,切换了中间件无感知
屏蔽内部实现:
跨实体方法:抽象接口/服务,抽象成领域服务,实现隔离
业务稳定:
- 核心业务稳定,变化的业务变成调接口,逻辑清晰,数据流转与业务逻辑分离
- 把造成业务变动的逻辑独立封装到新的接口/服务中,隔离具体实现
yyds
与技术无关/架构无关
比较全面 清晰架构
业务模型 隔离各种适配器(分类 主动http / 被动 mq )
领域调用方法:
- 业务组织 调用 另一个 菱形架构 本地
- 远程 RPC方式 / MQ,中间的通信机制 可替换