专栏名称: 聊聊架构
在这里煮酒聊架构。
目录
相关文章推荐
51好读  ›  专栏  ›  聊聊架构

静下心来想想,为什么领域模型对于架构师如此重要?

聊聊架构  · 公众号  · 架构  · 2017-06-26 18:10

正文

请到「今天看啥」查看全文


在问题空间里,主要是找出某个业务面临的挑战及其相关需求场景用例分析,而解决方案空间里,则通过具体的技术工具手段来进行设计实现。因此上图还可以进一步细分成如下图所示的互联网软件从业人员容易理解的一个映射转化过程。

简单理解领域和领域模型

领域(Domain)”和“领域模型(Domain Model)”概念定义网络上可以查到很多解释,这里就不多说了。它们可以简单的这样理解:

  • “领域”相对于软件系统来说,就是系统要解决的现实问题。因此也可以简单理解一个领域就对应一个问题空间,是一个特定范围边界内的业务需求的总和。

  • “领域模型”则是针对特定领域里的关键事物及其关系的可视化表现。它属于“解决方案空间”,是为了准确定义需要解决问题而构造的抽象模型,为软件系统的构建目标统一认知,是业务功能场景在软件系统里的映射转化。

比如上面的例子里,请假系统解决的问题是人力工时的问题,属于人力资源领域,对口的业务 Owner 是 HR 部门;费用报销系统解决的是员工和公司之间的财务问题,属于财务领域,对口的业务 Owner 是财务部门;跨境电商牵涉范围甚广,但本质上还是属于电商领域。同时可以看出,每个软件系统本质上都解决了特定的问题,都属于某一个特定领域,都实现了同样的核心业务功能来解决该领域里最核心的业务需求。比如电商平台、普通电商系统,这些都属于电商领域,只要是这个领域的系统,都会有商品浏览、购物车、下单、减库存、支付等核心环节。所以,同一个领域的系统都具有相同的核心业务,因为他们要解决的问题的本质是类似的。而之所以每个电商平台之间又有不同,那是由于客户群体、经营策略、商品种类、定价策略等不同而造成的差异。所以才有这样的说法: 领域来自于需求,但它却高于需求,相对于善变的需求而言,领域知识和领域模型本身是“静止”的,是“不变”的。

领域建模分为“战略建模”和“战术建模”两个层面,建模方法论也有多种,这里就不再累述。要对领域进行建模得到优秀的领域模型,必须先要对行业领域的业务有比较深入的理解,才能从复杂环境中找出领域核心问题,然后对它展开梳理。通常来说,一个领域有且只有一个核心问题,我们通常称之为该领域的“核心子域”。领域的战略建模通常就是从找出核心子域开始的。其次,在核心子域及通用子域和支撑子域梳理的同时,会定义出子域中的 Bounded Context(限界上下文)及其关系,用它来阐述子域之间的关系。最后,就是找出每个子域中的关键领域实体进行抽象提炼,并根据业务本质找出它们之间的联系关系。

为什么要建模?因为建模是帮我们提炼出事物的本质,以便能更好的指导应用系统规划建设。看一个简单例子。企业信息化规划建设经常谈到“人、财、物”的整体管控,对于“人”这部分,从大部分行业业务角度建模,可以归纳成经典的“三户模型”,即客户、用户、账户三户模型。







请到「今天看啥」查看全文