ddd-crew/core-domain-charts:帮助查找DDD核心子域的复杂性分析工具集


核心子域图帮助您可视化架构中每个(子)域或业务能力的战略重要性,从而使您能够做出与业务模型一致的架构决策。
这种技术的真正力量在于它引发的对话,尤其是跨学科的对话。复杂性是工程师可以衡量的东西,而业务差异化是由产品经理或业务利益相关者提供的。
 
衡量复杂性的重要性
首先,衡量你的领域的复杂性和差异化是很困难的,而且通常是相当主观的。战略是对未来的赌注,因此您永远无法确定某件事最终会变得多么复杂或差异化。但是,讨论和可视化您对每个领域的复杂性和差异性的信念仍然有很多价值。
以下线索可以帮助评估每个领域的复杂性和差异性。

  • 为领域设计概念模型并将其构建(和维护)为软件有多困难?(基本领域复杂性)
  • 当前的技术解决方案是否比提供当前功能所需的复杂?(意外的技术复杂性)
  • 软件外部是否发生了复杂的流程、计算和决策?(操作复杂性)
  • 一个新进入市场的人要达到或超过其能力有多难?
  • 现有竞争对手要达到或超过其能力有多难?
  • 目前有多少优势来自(子)域(收入、品牌、参与度)?
  • (子)领域(收入、品牌、参与度)可能带来多少优势?
  • 如果该领域发生重大或反复出现的故障,会对品牌造成什么损害?
  • 它属于哪个cynefin 哪个域?

 
复杂性可以以不同的形式表现出来。以下是揭示每个(子)域的基本域复杂性、偶然技术复杂性和操作复杂性的一些线索:
  • 发现潜在的新价值有多难?
  • 设计创造价值的规则、逻辑和工作流程有多难?
  • 系统需要以什么规模运行?(即使规则更简单,规模也会增加很多复杂性)
  • 是否需要非常高水平的差异化/复杂性来取代现有的市场领导者或在饱和市场中?
  • 是否需要难以获得且昂贵的专业知识/人才(发现和/或交付价值)?
  • 新人需要多长时间才能提高效率并提高效率?


几种使用方式:
核心域图有多种使用方式,但重要的是不要试图在单个图表中可视化所有可能的信息。以下是多个版本,显示了可供选择的不同类型的信息。

  • (子)领域/有界上下文组合

这是最简单的味道。只需在图表上绘制每个(子)域或有界上下文,以获得它们之间的相对顺序感。
  • 具有团队拓扑的上下文映射

您可以使用有界上下文和正在使用的团队拓扑交互模式类型之间的依赖关系来扩充您的核心域图表。
  • 架构迁移

稍微调整一下 y 轴标签,就可以使用核心域图表来规划从当前架构迁移到目标架构的顺序。