上图是一张普通地图,最刺眼的就是边界? 非常好奇地图绘制工程师是如何描绘如此弯曲多变的边界的?强制行政区域还是人群历史原因自然的人以群分? 我们再换个视角,对工程师或者架构师来说,微服务的边界如何划分呢? 基于DDD设计方法论中的概念 限界上下文 来划分微服务的边界: 背景 架构师小李正在团队推行DDD设计方法论,领域建模和系统建设过程中,很多岗位需要参加进来,比如产品经理,领域专家,项目经理,架构师,开发经理,测试经理.对同样的领域知识,不同的人可能有不同的认识,交流起来存在一定障碍. 假如你…
最重要的一句话 DDD的所有有相关理论中,只有一句是至关重要的,但是也是最容易被忽略和最难做到的,抛弃传统的设计方式(思路)的思想,这句话起了决定性的作用,但是99%的人都忽略了或者在开始无法正视或理解. 为什么说这句话是最重要的一句话,因为他是设计真正转变的出发点. 基于具体的语义环境 首先,DDD的重点在于领域这个东西,领域的确定必须要基于一定的环境的,简单理解就是 必须同时具备主谓宾,比如:小明关爱小花:对于这句话的理解其实存在歧义,如果没有具体的语义环境下可能有以下两种理解方式: 1).…
本文从战略层面街上DDD中关于限界上下文的相关知识,并以ECO系统为例子,介绍如何识别上下文.限界上下文(Bounded Context)定义了每个模型的应用范围,在每个Bounded Context中确保领域模型的一致性:上下文图(Context Map)表示各个系统之间关系的总体视图:通过持续集成(Continous Integration)确保多个限界上下文的模型统一. 限界上下文(Bounded Context) 限界上下文(Bounded Context)定义了每个模型的应用范围,在每…
前言 哈喽大家好,DDD领域驱动设计系列又开始了,前天周二的那篇入门文章中,也收到了一定的效果(写小说的除外),同时我也是倍感鸭梨,怎么说呢,DDD领域驱动设计已经有十年历史了,甚至更久,但是包括我在内的一批技术人员还是对其不是很明白,这几天我也是日思夜想,怎样才能说的明白,怎样才能把这个高高在上的思想落在实践上,可惜的是国内栗子比较少,国外文章比较少,只能硬啃了,所以更需要大家一起来讨论,这里要说一下,是一起讨论推动,而不是内心去拒绝,而一直和多层架构做对比,这样不仅不利于学习,也无法带动我的…
上一篇:<IDDD 实现领域驱动设计-理解领域和子域> <实现领域驱动设计>前两章内容,基本上读完了,和<领域驱动设计>不同的是,它把很多的概念都放在前面进行讲述了,比如领域精炼.界限上下文等等,在<领域驱动设计>中,是很靠后的内容,不过这样也好,可以让你从一个大局的视角去看待问题,由广到细的思路学习,我觉得也蛮好的.另外,随着一点一点的学习,你会发现,领域驱动设计越来越有意思了,有很多"新鲜"的东西等待发现. 一张很重要的图(无意间搜到…
什么是通用语言 通用语言, 最主要的目的就是减少交流中信息丢失, 在实际开发中, 可能关联很多人, 例如有业务层面的业务细节制定者.领域专家.产品经理.项目经理 .架构师.开发经理.测试经理等等, 即使确定了核心域, 但是对于同样的领域知识, 每个人也有自己的理解, 举个例子, 我们通常说的商品和货物,是不是其实就是一个东西 ? 在销售领域叫商品, 但是一旦进入物流领域就叫货物, 所以我们一说商品就知道这是在销售子域, 一旦说货物就知道这是在物流领域, 如果只用物品来进行交流可能就会丢失信息,因…
1. 引言 限界上下文可以拆分为两个词,限界和上下文. 限界:是指一个界限,具体的某一个范围. 上下文:个人理解就是语境. 比如我们常说的段子: "我想静静." 这个句子一般是想表达"我想静一静"的意思.但是我们却把它玩笑成"静静是谁?". 可见上下文语境很重要. 这个例子只是个开胃菜,我们接着往下看. 2. 案例分析 整个应用程序之内的一个概念性边界. 边界之内的每种领域术语.词组或句子--也即通用语言,都有确定的上下文含义. 边界之外,这些术…
Conference业务简介 Conference是这样一个系统,它提供了一个在线创建会议以及预订会议座位的平台.这个系统的用户有两类: 1:客户,可以创建和管理会议. 2:会议座位预定者,可以预订会议座位. 具体的关键业务描述如下: 1.客户登陆系统,客户可以创建一个会议,并录入会议的基本信息,比如名称.时间段.地点,参会人数等. 2.客户定义某个会议的座位类型,可以定义多个,每个座位类型包含的信息有:名称.座位价格.座位数量 ,根据座位类型自动生成座位编号. 3.客户发布或取消发布某个会议,…
DDD理论学习系列目录 1. 引言 领域一词,主要有以下两个意思: 一国主权所达之地. 学术思想或社会活动的范围. 不管是指国家的主权范围也好还是学术活动范围,都是在讲一个范围,一个界限. 比如我们常说的,学术领域.思想领域.技术领域.语言领域.物理领域.医学领域.游戏领域.JAVA领域..NET领域等等,它们中不管是泛指还是特指某个领域,都是限定在某个范围之内的. 由此可见领域一词重在范围的界限. 下面我们就回归正传,DDD,Domain Drive Design,全称,领域驱动设计.那这个领…
旅程3:订单和注册限界上下文 CQRS之旅的第一站 "寓言家和鳄鱼是一样的,只是名字不同" --约翰·劳森 描述: 订单和注册上下文有一部分职责在会议预订的过程中,在此上下文中,一个人(注册者)可以购买特定会议的座位.还可以为已购买的座位分配与会者的名称(这在第5章"准备发布V1版本"中进行了描述). 这是我们CQRS旅程的第一站,因此团队决定实现一个核心的.但自包含的系统部分--订单和注册.对与会者来说,注册过程必须尽可能地轻松.该流程必须确保业务客户能够预订到尽…