定义
特定领域软件架构以一个特定问题领域为对象,形成由领域参考模型、参考需求、参考架构等组成的开发基础架构,支持一个特定领域中多个应用的生成
graph LR A[领域分析 建立领域模型] --> B[领域设计 获得 DSSA] B --> C[领域实现 开发和组织可复用的信息] C --逐渐求精--> A
垂直域:某一狭小领域或者某个行业的共性 水平域:多个行业可通用的一些共性
组成
| 人员 | 任务 |
|---|---|
| 领域专家 | 提供关于领域中系统的需求规约和实现知识,复审领域模型,DSSA |
| 领域分析人员 | 控制整个领域分析过程,进行知识获取将获取知识组织到领域模型中等 |
| 领域设计人员 | 控制设计过程,开发 DSSA,建立领域模型和 DSSA之间的联系 |
| 领域实现人员 | 开发可重用构件,提取构件,建立构件与 DSSA联系 |
建立过程
flowchart TD A[领域范围] --> B[定义领域特定元素] B --> C[定义领域特定的设计和实现需求约束] C --> D[定义领域模型和架构] D --> E[生产、收集可复用的资产] E --递归<br>并发<br>螺旋--> A
领域驱动设计
定义
通过将软件实现与持续进化的领域模型结合来处理复杂业务需求
核心
聚焦核心领域逻辑,强调业务与技术专家建立统一语言,利用分层架构分离业务与技术复杂度
| 子域类型 | 定义 | 实例 |
|---|---|---|
| 核心域 | 核心竞争力,投入 70% 精力 | 直播,提问 |
| 支持域 | 核心必要的支撑 | 考勤,管理 |
| 通用域 | 行业通用,可复用 | 登录,通知,支付 |
限界上下文
定于了一个特定边界,在此边界内,领域模型拥有明确,无歧义的含义
作用
- 解耦与内聚:将大领域划分成特定上下文,可以独立开发演化
- 消除歧义:明确定模型的使用范围,确保有统一理解
- 明确集成关系