1.领域驱动简介.2.领域.子域.限界上下文.3.上下文映射图

1.领域驱动简介

领域驱动本身是一款古老的软件建模思想

 

领域驱动两大特性:通用语言.限界上下文

 

1.通用语言是一种思想.解释是:团队共享的术语.便于交流.//比如行业的术语或者.一个圈子内通俗的名称如开发者们对Visual Studio 的简称:VS.

 

2.限界上下文是整个应用程序之内一种概念性边界.这个边界内的领域术语.词组或句子.都是通用语言.都有确定的上下文含义.//限界上下文就像一个圈.包含了内部的术语.也能和其他限界上下文交互.

 

限界上下文和通用语言属于一对一关系.限界上下文能容纳一个独立的业务领域所使用的通用语言.

注意当整个团队工作在同一个限界上下文中通用语言才是通用.

虽然我们只工作在一个限界上下文中.但是我们通常需要和其他限界上下文交互.这时候可以通过上下文映射图集成.

每个限界上下文都有自己的通用语言.但是语言间的通用术语会有很多重叠.

如果试图将一种通用语言运用在整个企业中.难免会失败.//以燃料为例.汽车的柴油和航空煤油.

 

2.领域.子域.限界上下文

 

领域是一个团体所做的事和他包含的事物.商业机构通常会确定一个市场.然后在这个市场上销售产品.每个团体都有他的业务范围和行为.这个业务范围就是领域.当你为某个公司开发软件时.你面对的就是这个公司的领域.

 

 

假设物流是一个领域.物流领域应该有四个子域.产品.订单.发票.物流.假设这套领域开始运转.零售商用产品向客户展示.达成购买意向.出现订单.最后生成发票.安排物流.

产品.订单.发票.物流这四个子域构成了物流领域.

 

常规的产品在销售后必应存在需求量大或者小的情况.量大就容易脱销.量小就容易过剩.都会对利润造成损伤.

所以就需要一个核心域:销量预测系统.通过历史销售记录或者.市场调研等方式.采购正确的数量.

 

举个栗子.解释限界上下文中通用语言的含义.

 

每一个子域的业务范围就是一个限界上下文.含有通用语言.

 

在产品的限界上下文中.客户的含义只需要:购买历史.对此产品的忠诚度.购买能力.

在下单的限界上下文中.客户含义只需要:名字.购买产品.寄送地址.价格.

客户在每个限界上下文中属于通用语言.但是只限于此限界上下文使用.

 

 

3.上下文映射图

 

一个公司的上下文映射图可以抽象的理解为.一个简单的框图.表示若干限界上下文的映射关系.

 

上下文映射图表现的是公司架构当前的状态.可以直白的看出公司中系统的上下游关系.以及平行关系.

 

相比传统的开发思想.大泥球.瀑布.领域驱动设计一般采取敏捷.

系统间明确统一上下游系统交互协议.

单个系统注意解耦合.

 

以物流为例.一位客户浏览产品系统确定订购.首先产品系统和库存系统交互.提供产品.然后产品系统和订单交互生成订单.付款后和发票系统交互生成发票.最后通过物流系统交付客户.最终将此销售记录提交预测系统.

预测控制产品系统中能展示的用品.

看起来就像一个金字塔结构.底层的库存系统最庞大.各种用品.

上一层金字塔产品.只展示有效.能盈利的用品.

在上一层订单.只有达成购买意向的用品.

在上一层发票.已经付款的用品.不包含购买后未处理客户就申请退款的用品.

金字塔顶.双方达成共识.货物交付.

 

posted @ 2016-10-19 11:16  高1234  阅读(1874)  评论(0编辑  收藏  举报