30-27 之 DDD 战略设计 3 - 实作方法之 Domain Storytelling 领域叙事 ( 未完成 )

上一篇我们简单的说明完如何使用 Event Storm 来完成 DDD 战略的三个产出 :

  • 分析 Domain 并切成 SubDomain
  • 定义解决方案的边界 Bounded Context
  • 定义关系 Context Map

接下来我们要介绍另一个方法也是能完成以上三件事情的 :

Domain Storytelling

Domain Storytelling 分析流程

Step 1. 画 Domain Storytelling

基本上我觉得他很像是流程图,但是是以 domain 的概念来画。

然後他有基本三元素 :

  • 图示
    • Actors ( 参与者 ) : 使用者、系统、第三方服务。
    • Work Object ( 领域活动物件 ) : 例如使用者要看『 产品 』。那个产品就是 Work Object。
  • 箭头
    • Activities ( 活动行为 ) : 箭头、并且用动词来形容。
  • 文字/数字
    • 数字代表流程
    • 文字代表说明

假设有个需求是 :

用户想观看产品,然後它可以在网页上看到

那这样简单的化一下,就如下图所示。

https://ithelp.ithome.com.tw/upload/images/20211012/20089358epeK24PpjM.png

注意事项 1 - 没有分支与选择

基本上在画图时,不会有分支或是选择,它会优先选择最重要的一张图 ( Happy Path ),接下来如果还有其它重要的方案在画另外一张图,当然你也可以使用 Annotations 说明一下选择或分支,但记好,如果是重要的流程或是复杂建议还是多画一张。

注意事项 2 - 文法

  • A → work on → W
  • A → work on → W → using → V
  • A → hands over → W → to B
  • A → hands over → w → to B And C
  • A → collaborate on w ← collaborate on ← B

Step 2. 分析 Domain 与 Bounded Context

Step 3. 产生 Context Map

范例

这里我们以之前 event storm 的范例来说明。

使用者可以看到画面上有不同的产品,产品包含影音课程、文章、直播,并且可以购买与观看,并且购买完成後,并且会寄信给购买者,还会分润给老师们。

这里我们用到以下的连结,他可以帮助我们简单的画出 Domain Storytelling

https://www.wps.de/modeler/

https://ithelp.ithome.com.tw/upload/images/20211012/20089358AU5KzKiuJO.png

然後我写到这我发现上面这张图,好难整理 domain… 我在努力研究一下这个工具 ,我觉得下面这个演讲说的非常清楚,建议去看。

DDD 领域驱动设计

参考


<<:  D27 - 彭彭的课程# Python 实体物件的建立与使用 - 下篇 - 实体方法 - Instance Method(1)

>>:  Day27 - 使用 LIFF 表单收集用户讯息

Modal in React ( Declarative Modal ) (2)

如何从 Modal 外部带入元件给内部渲染? 续前篇提出的疑问 Modal in React ( R...

[Day 13] tinyML开发框架(一):TensorFlow Lite Micro初体验(下)

执行推论(C/C++ + Arduino IDE + MCU) 书接上回[Day 12] tinyM...

DAY28 mongodb aggregate(2)

上次我们在mongo shell里使用mongodb aggregate 不过 我们需要在程序里面去...

Day2:在Anaconda上安装Tensorflow以及Keras

  上篇明白到目前Tensorflow的状况如何,是时候重新建立环境了,我使用Anaconda建立环...

e是咱ㄟ宝贝

前面提到那个e,蕴含着我们与网页互动丰富的资讯。 例如: type:代表事件的类别。 target:...