SuperAPI AI 工具集

ddd

设计与创作

查看项目

更新于 10-15 20:31

技能介绍

用途:在建模阶段应用领域驱动设计,把领域模型直接反映到代码中,用统一语言、限界上下文和聚合边界保护不变量,而不是只建 Domain 文件夹加 getter。

主要能力:战略层面包含统一语言、术语表、限界上下文及其关系映射(上下游、ACL、共享内核、客户/供应商)与上下文间集成(事件或 ACL)。战术层面包含实体、值对象、聚合(一致性边界,单一根)、领域事件、仓储、领域服务、应用服务/用例。

使用方式:聚合内维护不变量,外部不可绕过根修改子对象;跨聚合引用用 ID 而非对象导航;持久化按“加载聚合—执行命令—保存”进行;领域事件用过去式命名、最小载荷、提交后发布(跨进程用 outbox);仓储只提供 Get(id) 与 Save(aggregate),读取模型可绕过聚合(必要时用 CQRS)。应用服务负责鉴权、加载聚合、调用领域、持久化、发事件;领域层不依赖 HTTP、SQL 或 Web 框架。

适用场景:规则复杂、语言冲突和数据生命周期是主要风险时;可与软件架构、整洁架构、模块化单体、CQRS、事件驱动架构、微服务架构及认证授权等技能配合。

限制:CRUD、薄 BFF、胶水任务不建议用重型战术 DDD,简单事务与 DTO 即可,战略部分(上下文命名)仍可用。避免贫血领域、上帝聚合、照搬 DDD 目录、过大共享内核、按表划分限界上下文、仓储 GetAll 后在应用层做本属聚合的规则。完成标准:上下文与语言在代码中可见、聚合有不变量和明确事务、跨聚合按 ID 引用、事件为过去式且在持久化后发布、CRUD 领域不套用战术 DDD。