zoukankan      html  css  js  c++  java
  • 1.领域驱动简介.2.领域.子域.限界上下文.3.上下文映射图

    1.领域驱动简介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    3.上下文映射图

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

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

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

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

    单个系统注意解耦合.

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

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

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

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

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

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

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

  • 相关阅读:
    linux下查找文件及查找包含指定内容的文件常用命令
    小程序与h5之前切换频繁时候,点击无反应
    vue项目微信分享之后路由链接被破坏问题
    async-await用法
    小程序input组件获得焦点时placeholder内容有重影
    es6语法在ios低版本的支持性
    h5页面避免两个页面反复跳转死循环
    小程序getLocation出现的各种问题汇总
    小程序组件跳转页面存在兼容问题
    nigix反向代理
  • 原文地址:https://www.cnblogs.com/Gao1234/p/5957245.html
Copyright © 2011-2022 走看看