《实现领域驱动设计》笔记——上下文映射图

一个项目的上下文映射图可以用方式来表示。比较容易的一种是画一个简单的框图表示两个或多个限界上下文之间的映射关系。该框图表示了不同的限界上下文在解决方案空间中是如何通过集成相互关联的。另一种更详细的方式是通过限界上下文集成的源代码实现来表示。

  上下文映射图为什么重要

  上下文映射图主要帮助我们从解决方案空的角度看待问题。

  

  假定你期望大泥球维护团队提供一套新的API。然而,他们却并不打算这么做,或者他们根本就不知道你的想法。此时你的团队和大泥球维护团队的关系变成了 客户方-供应方 的关系。由于大泥球团队决定维持现状,你的团队不得不陷入一种遵奉关系中。这样的关系可能导致你的项目延期交付或者彻底失败。

  尽早绘制上下文映射图,这样可以迫使你仔细思考你的项目和你所依赖项目之间的关系。

  绘制上下文映射图

  上下文映射图表现的是项目当前的状态,如果项目会在将来发生改变,你可以到那时才对上下文映射图做出相应的更新。关注于当前的项目状态可以帮助你了解你正处的位置,并帮助你决定如何走出下一步。

  绘制一个上下文映射图并不复杂。通常,首选在白板上手绘映射图,此时你可以采用 [Brandolini] 的风格。如果你打算使用一个绘图工具来绘制上下文映射图,请注意不要把图画得太正式了。

  上图3.1中,图中限界上下文的名字和彼此之间的集成关系只是占位符而已,在真实的上下文映射图中,我们将代之以实际的名字。

  有时,我们希望对上下文映射图的某些特定部分进行放大,以向里面加入更多的细节,这只是从另外一个角度来看待同一个限界上下文。除了边界、关系和翻译,我们可以可能希望加入其他的一些内容,比如模块、聚合,或者团队的分布信息等。

  所绘制的所有映射图,包括文字,都可以装订在同一份参考文档中,只要这对团队是有价值的。在这个过程中,我们应该避免那些繁文缛节性的仪式,保持简单和敏捷。向框图中加入过多的细节对团队并无多大帮助,交流才是关键,我们应该将交流对话也加入到上下文映射图中。

  

  上下文映射图并不是一种企业架构,也不是系统拓扑图。但是,它可以用于高层次的架构分析,指出诸如集成瓶颈之类的架构不足。上下文映射图展现了一种组织动态能力,它可以帮助我们识别出有碍项目进展的一些管理问题。

  并不是说限界上下文边界一定得密不透风,而是:对于任何上下文边界,开发团队都希望协作上下文能够完全地控制所进所出,还包括进出的原因。否则,该上下文便会出现一些不受欢迎的“拜访者”。对于模型而言,这些“拜访者”通常会导致混淆和BUG。建模人员应该是友好的,但是友好的前提是秩序与和谐。任何进入边界的外部概念都应该持有充分的理由,甚至需要和边界内的模型保持良好的兼容性。

  在理解充分的情况下,要绘制上下文映射图并不难,但是通常来说,我们并不会将映射图中的所有内容都显示出来。在迭代过程中,思考和讨论可以帮助我们改进上下文映射图,比如对集成点进行改进,这将有助于描述限界上下文之间的关系。

  拥有自治服务的应用程序并不表示需要将上游系统的数据库复制到下游系统。数据库复制将迫使本地系统承担过多的职责,它需要创建一个共享内核,而这并不是真正意义上的自治。

  处理不可用的一个 好办法是将其显现出来。

  使用资源可用性状态的好处并不只是技术上的,还有商业上的。

  需要记住的是,对于一个非常详细的上下文映射图,我们很有可能无法对其进行实时更新。

文章转载自:Ruby_Lu

原文链接:https://www.cnblogs.com/afei-24/p/17848031.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/210861.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Selenium(12):层级定位_通过父元素找到子元素

层级定位 在实际的项目测试中,经常会遇到无法直接定位到需要选取的元素,但是其父元素比较容易定位,通过定位父元素再遍历其子元素选择需要的目标元素,或者需要定位某个元素下所有的子元素。 层级定位的思想是先定位父对象&#xf…

Delphi读写IC卡数据、修改IC卡认证密钥源码

本示例使用的设备:Android Linux RFID读写器NFC发卡器WEB可编程NDEF文本/智能海报/-淘宝网 (taobao.com) 函数声明 unit declaredll;interface//读卡函数声明function piccreadex(ctrlword:byte;pserial:pbyte;area:byte;keyA1B0:byte;picckey:pbyte;piccdata0_2:…

uni-app开发小程序,利用scroll-view实现自动滚动至对应数据

uniapp scroll-view 官网 vue文件内容&#xff1a;dom: <scroll-view scroll-y :scroll-into-view"seqToView"><view class"pop-scroll"><viewv-for"(item,index) in seqList":id"seq- item":key"index"cl…

性能测试你还不会做?看看这篇文章你就懂了!

性能测试的概述 性能&#xff1a;百度百科定义&#xff1a;器物的性质与效用。 生活中&#xff1a;买手机&#xff0c;买电脑&#xff0c;买车 –》 性能好&#xff1a;快&#xff08;时间短&#xff09;、资源 软件的性能&#xff1a;软件在允许的范围内使用过程中的反应的…

微信运营神器:从群发到批量添加,让你的微信营销更轻松

在这个数字化时代&#xff0c;微信已经成为了我们生活中不可或缺的一部分。对于许多企业和个人来说&#xff0c;微信营销也是非常重要的一部分。但是&#xff0c;微信营销并不是一件容易的事情&#xff0c;需要花费大量的时间和精力。为了解决这个问题&#xff0c;今天我们将向…

易涝积水点监测,内涝积水监测仪安装

城市内涝对人们来讲会有很多影响&#xff0c;比如出行需要绕远路或者家中涌入污水导致淤泥堆积&#xff0c;这还有可能让屋内的家具受到破坏&#xff0c;既影响正常生活也造成了经济损失。在街道上还可能对交通、通讯、电力等基础设施造成严重威胁。因此政府如果能实时监测路面…

2024消费行业数字化增长,从“盲人摸象”到“按图索骥”

自2015年“互联网”兴起以来&#xff0c;消费行业就面临着消费者、市场和数字化技术的碎片化挑战。在数字中台的推动下&#xff0c;消费企业开始“一路向C”&#xff0c;将各种企业资源平台化&#xff0c;期望用后端数字化推动前端的增长。而2023年大模型和生成式AI&#xff0c…

如何截留快手行业意向用户:10个合规方法大揭秘

先来看实操成果&#xff0c;↑↑需要的同学可看我名字↖↖↖↖↖&#xff0c;或评论888无偿分享 一、引言 随着互联网的发展&#xff0c;快手已成为一个巨大的流量池&#xff0c;吸引了无数用户。其中&#xff0c;不乏许多行业的意向用户。如何截留这些意向用户&#xff0c;成…

想考教师编制专业不对口怎么办?

很多人在想要步入教师行业时&#xff0c;会遇到一个问题&#xff1a;专业不对口。这种情况可能会让你感到困惑和沮丧&#xff0c;但不要气馁&#xff0c;因为有很多方法可以让你实现自己的梦想。 可以通过提高自己的教育水平和能力来弥补专业不对口的缺陷。你可以通过参加教师资…

荧光量子效率是LED灯的重要性能指标之一

荧光量子效率积分球可以提供准确的荧光量子效率测试结果。荧光量子效率是LED灯的重要性能指标之一&#xff0c;它反映了LED灯在特定波长激发下发出的荧光光的强度。通过荧光量子效率积分球测试&#xff0c;可以获得准确的荧光量子效率值&#xff0c;从而对LED灯的性能进行评估和…

Linux--初识和基本的指令(2)

目录 前言 1. 指令 1.1 cd其它携带指令 1.2 ls其它携带指令 1.3 which指令 1.4 alias指令 1.5 mkdir其他携带指令 1.7 yum -y install 安装指令 1.8 stat指令 1.9解决指令失控状态 1.10 rmdir&&rm指令 1.11 man指令 1.12 cp指令 1.13 mv指令 1.14 nano…

手持式无线通信频谱分析仪 MS2713E

MS2713E 手持式无线通信频谱分析仪 安立手持式无线通信频谱分析仪 MS2713E 旨在处理最恶劣的现场条件&#xff0c;使您能够监控、定位、识别和分析各种蜂窝、2G/3G/4G、陆地移动无线电、Wi-Fi 和广播信号。多功能 Spectrum Master 在定位和识别宽频率范围内的信号时&#xff0…