战略设计 -- 领域篇
战略设计
- 从业务角度出发,建立业务模型,划分业务边界
领域
- 领域(Domain)是系统的核心,是指系统所要解决的具体业务问题或业务范围。它是所有业务知识、规则、流程和复杂性的集合,是开发团队与业务专家共同关注的核心问题域。
1、领域的本质
-
业务为核心:领域是软件系统背后的业务目标,例如电商平台的“在线零售”、银行的“信贷管理”或医院的“患者就诊流程”。
-
知识的边界:它定义了系统需要理解和建模的业务范围,包含该范围内的一切关键概念、术语、规则和流程。
2、领域的组成
-
子域(Subdomain):将庞大领域拆分为更小的、内聚的业务单元
- 子域又分为:
- 核心子域:是整个业务系统的核心,所有的业务都为围绕核心域展开。
* 精炼业务域(怎么明确业务核心?)
* 领域愿景说明
* 突出核心
* 内聚机制
* 分离的核心
* 抽象核心 - 支撑子域:辅助核心业务运作(如物流跟踪)。
- 通用子域:通用解决方案(如权限管理)
-
限界上下文(Bounded Context):用来封装通用语言与领域对对象,提供上下文环境,保证领域内的一些术语与业务相关的对象没有一个明确的含义,没有二义性,避免概念混淆。边界定义了模型适用范围。
3、领域模型(Domain Model)
-
业务的抽象:通过对象(如实体、值对象)和模式(如聚合、领域服务)表示业务逻辑。
-
与技术的分离:模型专注于业务规则,而非数据库或UI等技术细节。
- 实体(Entity):具有唯一标识的对象(如 User 通过ID区分)。
- 值对象(Value Object):无标识、基于属性区分的对象(如 Money 包含金额和货币类型)。
- 领域事件(Domain Event):记录业务关键操作(如 OrderPlaced 事件触发库存扣减)。
总结
- 战略设计是一种高层次视野审视软件系统的一种方式
- 容易出问题是频繁进行战略改动

浙公网安备 33010602011771号