第7章 上下文映射

第7章 上下文映射

  1. 一个现实情况的映射

为何上下文映射对于战略设计至关重要

理解有界上下文之间的模型关系

团队和上下文之间的组织关系模式

沟通交流上下文映射的有效方式

在大型复杂的应用程序中,上下文中的多个模型会协作以满足系统需求和行为。

系统内上下文的技术细节并非能够妨碍项目成功的唯一力量,负责上下文的团队之间的组织关系也能对项目结果产生很大的影响。为了让项目取得成功,团队通常需要在政治层面而非技术层面管理这些情况中的变化。

上下文映射是一个重要构建;其职责是确保系统各个上下文之间的边界被明确定义,并且每个团队都理解他们之间的接触点。

    1. 技术的实现

下图,该映射的技术详情揭示了上下文之间的集成点。

上下文映射必须揭示数据的集成点和流向。就像代码模型和分析模型。

    1. 组织的现实

技术变更会非常直观,但如果不理解政治形势,对其他上下文的变更就可能会延迟或者完全不能执行。

    1. 映射一个相关现实情况

尝试专注于当前的问题区域,而非对整个公司取得成功的情景,是影响当前项目。

仅专注于要直接集成的上下文会帮助你准备好创建上下文映射并避免分散精力。

 

    1. 用X标记核心领域的位置

在图上标记出核心领域并找出它与其他上下文之间的关系能够为企业场景提供核心领域在上下文中清晰性的见解。

 

  1. 认识有界上下文之间的关系

以下模式描述了有界上下文之间的常见关系。

这些模式显示了模型是如何彼此相关以及团队是如何彼此相关的。

他们并非关于跨越上下文通信的技术集成模式。

    1. 防止损坏层

如果在与其他模型集成时候,这些集成模型可能不小心谨慎的话,适应他们的接口可能会导致你的模型损坏。

为了避免损坏以及保护你的模型远离外部影响,可以创建一个包含根据你的模型编写的接口的隔离层,改接口要适用并转换为其他上下文的接口,这一隔离层被称为防止损坏层。

防止损坏层的转换映射的工作方式与适配器模式类似,在其中它会将另一个上下文的API转换成可以操作的API。

 

    1. 共享内核

如果两个团队在相同应用程序中根据领域概念和逻辑在具有大量交叉的两个独立有界上下文上密切合作,那么保持团队独立和使用转换映射将会在一个上下文转成成另一个上下文的成本非常高昂,这种情况下,协作并共享模型的一部分以减少集成性可能会是较好的做法。这一共享模型被称为共享内核。在相同子域中具有共享一个领域逻辑子集的两个有界上下文。

共享内核可能会有较高的风险,团队协作沟通,模型修改以及连续集成测试等都要注意。

    1. 开放宿主服务

如果多个使用者共享相同的转换逻辑,则它就能更多用于提供一组服务,改组服务要通过一个清晰定义的明确约定来公开上下文的功能,我们称之为开放宿主服务。

    1. 分道扬镳

如果由于技术复杂性或者政治因素导致上下文之间的集成成本过于高昂,那么可以下决心完全不集成上下文并且直接让团队远离彼此而独立实现。作为替代,集成可以通过用户接口或人工处理来达成。

 

    1. 合作关系

如果两个团队负责不同上下文但是朝着一个共同目标前进,那么可以形成合作关系以确保这两个上下文之间集成的协作能达成。协作能覆盖技术接口,这样他们就能顺应两个团队的关切点。

    1. 一种上游/下游关系

有界上下文之间的关系可以根据方向来定义;一端是上游,另一端是下游。

如果位于关系的下游端,那么依赖于上游端的数据或行为。上游端将影响上下文。

 

1

顾客-供应商

顾客-供应商关系重点在于顾客团队的有界上下文依赖于供应商团队的有界上下文,反之,则不然。

2

遵从

 

 

 

 

  1. 传递上下文映射

 

  1. 上下文映射的战略重要性

上下文映射是一个强大的构件,揭示了技术和组织上的交互关注点,还揭示了通信的问题以及业务中的工作流程,以及能够帮助新成员快速跟上进度并提供潜在问题热点的早期预警。

    1. 保持完整性

    1. 解决计划的基础

上下文映射会凸显混淆和混乱的部分,并且更重要的是,会凸显核心领域之所在。

团队可以使用这一信息来识别他们需要首先解决的区域,以提高项目的成功几率。

 

    1. 理解所有权和职责

责任和义务是能够影响一个项目的其他非技术区域。

定义需要集成的子系统的团队所有权和管理权是确保及时作出变更并更符合所预期内容的基本条件。

 

    1. 揭示业务工作流中混乱区域

有界上下文之间产生的以及充分利用有界上下文的业务过程通常会被丢弃在没有清晰职责以及没有明确边界和集成方法的无人之地。

专注于关系非技术方面的上下文映射能够揭示被破坏的业务过程流和系统之间的通信,以及随着时间推移已退化的业务能力。

 

    1. 识别非技术障碍

上下文映射会揭示参与到项目中的部门边界。

项目或任务的优先级同步,同样,需要在与第三方上下文集成的变更可以公开测试环境和外部团队协作的需求,或至少公开访问沙盒账户和文档的权限。

    1. 鼓励良好的沟通

当有界上下文表示,你是上游团队时,你会理解你的职责通常是引导决策制定,并且相应地,你可能通常需要发起沟通。

 

    1. 帮助加入的新员工

 

  1. 要点汇总

猜你喜欢

转载自blog.csdn.net/weixin_43340450/article/details/88778909