热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

事件风暴研讨会备忘单

事件风暴是软件系统的快速设计技术,涉及技术人员和领域专家业务分析师。它最适合领域驱动设计环境,并倾向

事件风暴是软件系统的快速设计技术,涉及技术人员和领域专家/业务分析师。它最适合领域驱动设计环境,并倾向于/准备事件溯源和CQRS。该技术最初由Alberto Brandolini引入,由Vaughn Vernon在Domain Driven Design Distilled中采用。它也是他的iDDD研讨会系列的一部分。

该备忘单旨在提供有关准备和促进事件风暴研讨会的简短见解。它并非旨在对该主题进行完整的介绍,需要事先了解DDD和事件风暴才能负责任地使用本文档。

所需材料

  • 卷纸,用于创建建模曲面。例如在宜家(Mala, http ://www.ikea.com/de/de/catalog/products/80324072/ 或亚马逊 https://www.amazon.de/gp/product/B005OBO1LO )
  • 粘性便笺。Vaughn Vernon推荐使用7,6 x 7,6 cm超粘性品种。您需要以下颜色:橙色,浅蓝色,浅黄色,绿色,粉红色,紫色/红色,淡紫色。我找到了Post It系列Marrakesh(例如https://www.amazon.de/gp/product/B016OON3UO/)和Energy(例如 https://www.amazon.de/gp/product/B006JCQJJY )。确保你有足够的
  • 如果您还想绘制UI模拟,人物角色或验收测试用例,您也可以添加更多种类的胶粘物。
  • 细头记号笔或水笔。每个参与者至少一个,但最好有两种颜色,例如黑色和蓝色。不要使用标准的活动挂图标记,因为它们对于选定的粘滞便笺来说太大了,而是更精细的。我发现Stabilo'Greenpoint L0.8运行良好(https://www.amazon.de/dp/B004HV1N8Q/)。
  • 更大的记号笔。标准活动挂图标记效果很好。你不能错过Neuland标记,例如 https://de.neuland.com/marker-stifte/neuland-marker/neuland-no.one-keilspitze-2-6-mm-einzelfarben.html
  • 胶带。使用电工胶带将纸卷和可能的皱纹胶带放在一起,以便添加额外的纸条。

准备:

事前:

  • 邀请域专家和开发人员。就个人而言,我的目标是不超过8.但由于建模空间很大,讨论组将会出现,因此更多的人也可以很好地工作。
  • 安排会话不超过2或3个小时。计划后续会议。

在会议室准备

  • 从房间里取走椅子。人们应该到处走走。正如阿尔贝托所说,座位是有毒的。
  • 提前准备思路,或者,对于初次参与者,按照 执行中的 描述迭代地创建图例。您可以使用预先准备好的 卡片, 例如本文档附带的 卡片 。
  • 准备建模空间。使用贴在大墙上的纸卷。1 mx 10 m应视为最小尺寸。越大越好。准备好扩大空间。
  • 布置粘滞便笺和标记。

执行

您可以在下面按照Vaughn Vernon推荐的顺序进行。可以在后续步骤中添加其他人工制品,但重要的是大致遵循: 事件→命令→聚合→边界→查看顺序。

  1. 创建或排列图例,以便所有参与者都能很好地理解颜色注释/注释的语义。
  2. 用橙色便签代表领域事件并将它们放置在业务流程(=时间序列)顺序的建模空间中。该名称是过去时的名词/动词组合,例如。ItemOrdered
  3. 如果问题领域与流程或questions出现没有能够得到立即解析的概念,使用紫色或红色的便签标注。
  4. 某些领域事件将形成业务流程运行。用淡紫色标记流程的名称,并从事件流程到业务流程绘制一个箭头。
  5. 当您认为已捕获大多数领域事件时,请关注创建这些事件的命令。把它们靠在引起它们的事件的淡蓝色上。过程是在时间轴上从左到右进行。这个名字就像是一个动作OrderItem(Order是一个动词)。
  6. 如果特定用户角色执行命令,请注意在命令下方使用黄色。我喜欢绘制简笔画来区分它们。
  7. 当您认为自己拥有所有命令时,请将聚合放在黄色便签上,并将它们放在此聚合上执行的命令与其导致的事件之间。这个名字就像一个名词“Item条目”,如果多次使用聚合,请创建副本并将其重复放在时间轴上。
  8. 将有界上下文(实线)和子域(虚线)绘制到建模表面上。只有当你觉得你已经足够了解边界时,你才应该这样做。使用粉红色标记命名上下文。
  9. 绘制箭头以显示事件在您的上下文之间流动的方向。
  10. 识别用户在系统中执行任务所需的视图。将它们放在聚合下方的绿色便签上。

可选添加:

  • UI模拟与界面视图
  • 重要测试的验收测试草图
  • 用户角色
  • 阅读模型

上文中提到的各种颜色的语义如下所示,以供参考。

  • 领域事件 - 橙色
  • 命令 - 浅蓝色
  • 聚合 - 黄色
  • 问题 - 红色或紫色
  • 用户角色/角色 - 黄色与棒图
  • 意见 - 绿色
  • 有界上下文- 实线,粉红色的笔记
  • 子域名 - 虚线
  • 事件流程 - 箭头

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 我们


推荐阅读
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • 本题探讨了在一个有向图中,如何根据特定规则将城市划分为若干个区域,使得每个区域内的城市之间能够相互到达,并且划分的区域数量最少。题目提供了时间限制和内存限制,要求在给定的城市和道路信息下,计算出最少需要划分的区域数量。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 本题通过将每个矩形视为一个节点,根据其相对位置构建拓扑图,并利用深度优先搜索(DFS)或状态压缩动态规划(DP)求解最小涂色次数。本文详细解析了该问题的建模思路与算法实现。 ... [详细]
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • 本文探讨了如何在Classic ASP中实现与PHP的hash_hmac('SHA256', $message, pack('H*', $secret))函数等效的哈希生成方法。通过分析不同实现方式及其产生的差异,提供了一种使用Microsoft .NET Framework的解决方案。 ... [详细]
  • 本文探讨了2019年前端技术的发展趋势,包括工具化、配置化和泛前端化等方面,并提供了详细的学习路线和职业规划建议。 ... [详细]
  • EasyMock实战指南
    本文介绍了如何使用EasyMock进行单元测试,特别是当测试对象的合作者依赖于外部资源或尚未实现时。通过具体的示例,展示了EasyMock在模拟对象行为方面的强大功能。 ... [详细]
  • 在使用Rails Paperclip插件与AWS S3进行文件管理时,遇到了`exists?`和`clear`方法调用时出现的`AWS::S3::Errors::BadRequest`错误。本文探讨了问题的原因及可能的解决方案。 ... [详细]
  • 本文介绍如何通过更改软件源来提前体验Ubuntu 8.10,包括详细的配置步骤和相关注意事项。 ... [详细]
  • 本题涉及一棵由N个节点组成的树(共有N-1条边),初始时所有节点均为白色。题目要求处理两种操作:一是改变某个节点的颜色(从白变黑或从黑变白);二是查询从根节点到指定节点路径上的第一个黑色节点,若无则输出-1。 ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • dotnet 通过 Elmish.WPF 使用 F# 编写 WPF 应用
    本文来安利大家一个有趣而且强大的库,通过F#和C#混合编程编写WPF应用,可以在WPF中使用到F#强大的数据处理能力在GitHub上完全开源Elmis ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有