美文网首页
百问中台:基于DDD的中台领域分析与设计

百问中台:基于DDD的中台领域分析与设计

作者: sknfie | 来源:发表于2020-09-27 21:24 被阅读0次

    DDD领域分析与设计

    概述

    领域指的是范围和界限,主要用来确定业务的界限。
    领域驱动设计DDD(Domain Drive Design)是一种面向对象建模方法,通过设计高质量的软件模型,解决复杂中大型软件的一套行之有效的方式。

    领域分析与设计

    以交易系统为例,进行领域分析与设计。

    1.业务领域

    一个领域本质上可以理解为就是一个问题域,只要是同一个领域,那问题域就相同。所以,只要我们确定了系统所属的领域,那这个系统的核心业务,即要解决的关键问题、问题的范围边界就基本确定了。

    交易系统涉及的是用户、货物、合同、交易、支付等相关业务,本质还是交易系统。这些核心业务也是任何交易系统都会涉及的业务。
    因此,DDD中的领域是界限在指定的业务需求之中,有了清楚的范围边界。

    2.领域拆分

    DDD在软件开发设计过程注重的是领域建模:
    在了解了业务领域的业务规则之后,需要对一个复杂的领域进行分析,往往先简而化之,即领域拆分。

    • 把领域中的复杂大问题,拆分成小问题,各个击破;
    • 将一个领域拆分成多个子域,再针对每个子域进行分析;
    • 子域又可以分为核心域、通用子域、支撑子域。

    根据上面的案例所涉及的业务,用户、货物、合同、交易、支付等相关业务,可以大致拆分成以下几个子域:

    • 用户子域
    • 货物子域
    • 合同子域
    • 交易子域
    • 支付子域

    3.核心子域

    核心子域作为一个业务的核心存在,最能体现系统的核心价值与核心竞争力。也是在进行开发设计的时候,体现的主次之分的主要部分。
    因此,交易系统的核心就是为了交易,因此其核心子域就是交易子域。

    4.通用子域

    通用子域是为整个业务领域服务的。
    系统管理模块提供日志系统用来记录各个服务的日志。
    因此,需要设计一个日志子域来供其他子域使用。

    5.支撑子域

    支撑子域作为非核心业务,是为业务系统的某些重要业务服务的。它关注的是业务某一方面,用来支撑完善业务系统。
    因此,划分的子域中除了交易子域,其他都是支撑子域。

    6.总结

    本文主要结合交易系统案例,介绍了DDD中领域、核心域、通用子域、支撑子域的定义。

    • 领域是有范围界限的,或者说是有边界的。
    • 核心域是业务系统的核心竞争力,承载着一个系统的核心价值。
    • 通用子域作为业务系统所有子域的基础支撑,为子域提供系统管理等通用服务。
    • 支撑子域专注于业务系统的其他部分,来支撑和完善业务系统。

    相关文章

      网友评论

          本文标题:百问中台:基于DDD的中台领域分析与设计

          本文链接:https://www.haomeiwen.com/subject/dozluktx.html