战略设计 -- 领域篇

战略设计

  • 从业务角度出发,建立业务模型,划分业务边界

领域

  • 领域(Domain)‌是系统的核心,是指系统所要解决的‌具体业务问题或业务范围‌。它是所有业务知识、规则、流程和复杂性的集合,是开发团队与业务专家共同关注的核心问题域。

1、领域的本质

  • 业务为核心‌:领域是软件系统背后的业务目标,例如电商平台的“在线零售”、银行的“信贷管理”或医院的“患者就诊流程”。

  • 知识的边界‌:它定义了系统需要理解和建模的业务范围,包含该范围内的一切关键概念、术语、规则和流程。

2、‌领域的组成

  • 子域(Subdomain)‌:将庞大领域拆分为更小的、内聚的业务单元

    • 子域又分为:
    • 核心子域‌:是整个业务系统的核心,所有的业务都为围绕核心域展开。
      * 精炼业务域(怎么明确业务核心?)
      * 领域愿景说明
      * 突出核心
      * 内聚机制
      * 分离的核心
      * 抽象核心
    • 支撑子域‌:辅助核心业务运作(如物流跟踪)。
    • 通用子域‌:通用解决方案(如权限管理)
  • 限界上下文(Bounded Context)‌:用来封装通用语言与领域对对象,提供上下文环境,保证领域内的一些术语与业务相关的对象没有一个明确的含义,没有二义性,避免概念混淆。边界定义了模型适用范围。

‌3、领域模型(Domain Model)

  • 业务的抽象‌:通过对象(如实体、值对象)和模式(如聚合、领域服务)表示业务逻辑。

  • 与技术的分离‌:模型专注于业务规则,而非数据库或UI等技术细节。

    • 实体(Entity)‌:具有唯一标识的对象(如 User 通过ID区分)。
    • 值对象(Value Object)‌:无标识、基于属性区分的对象(如 Money 包含金额和货币类型)。
    • 领域事件(Domain Event)‌:记录业务关键操作(如 OrderPlaced 事件触发库存扣减)。

总结

  • 战略设计是一种高层次视野审视软件系统的一种方式
  • 容易出问题是频繁进行战略改动
posted @ 2025-05-22 18:01  刘继先  阅读(35)  评论(0)    收藏  举报