DDD(Domain-Driven Design)领域驱动设计-(二)事件风暴

本节及后边的章节都以实际的例子进行描述,并且完整的按照DDD的流程实现该系统

题目如下:

背景介绍
一个面向学校师生的网上考试系统
需求描述
1.老师可以创建一门课程
	○一门课程包含多个视频和一场考试 (视频仅由老师在google drive的文件夹里进行管理)
	○课程发布之后,学生可以观看视频学习课程和参加考试
2.老师可以维护一个已存在的考试题库
	○题库里面会有很多题目,目前只有填空题
	○老师可以浏览,创建,删除和修改题库中的题目
3.老师可以通过选择题库中的题目来创建试卷
	○一张试卷由多道题目构成
4.老师可以修改试卷
5.老师可以在课程中创建一场考试
	○一场考试包含一张试卷
	○学生可以在规定日期之内开始作答试卷
	○一场考试不得超过两个小时
	○考试中的试卷的总分必须是100分
	○考试试卷的题目数量在5-20道之间
	○试卷中不能出现相同的题目
6.学生可以答卷
	○答卷要发答题纸
	○学生在开始答卷后,需要在规定时间内完成考试
	○学员答卷后,分数由系统自动判别得出
7.题库中的题目发生变化后,未添加到考试中的试卷也需要发生变化,已经创建的考试中的试卷不会发生变化
8.阅卷在答卷后触发
9.考试成绩达标,会调用第三方证书服务(RESTful)生成证书
	○证书只会生成一次
	○证书中包含课程名称
10.老师可以查看报表统计数据
	○成绩区间统计
	○课程通过率统计
术语表

课程:course
题库:quiz bank
填空题:blank quiz
试卷:paper
考试:examination
答题纸:answer sheet
答案:answer
参考答案:reference answer
证书:certification
阅(卷): review
组(卷):assemble
重组(卷):reassemble
分发(答题纸):assign
交(卷):hand in
提交(答案): submit
发布(课程): publish
生成(证书): generate

什么是领域事件

事件风暴中的事件特指领域事件,是领域专家关心的事件,业务上真实发生的事,这件事有业务价值

事件风暴的步骤

  • 1.找出领域事件:橘黄色的便利贴,一个便利贴代表一个事件,采用"something has been done"的形式
  • 2.事件排序:事件需要按照时间顺序排好,不同的事件需要保证相对顺序

这个过程中如果有问题,需要及时与领域专家进行沟通

便利贴

DDD(Domain-Driven Design)领域驱动设计-(二)事件风暴_第1张图片
不同的便利贴的颜色代表不同的意义,本节只会用到橘黄色的事件便利贴,其他颜色的遍历贴后边的设计会用到

事件风暴TIPS

  • 1.事件风暴的输入是业务,表现形式为:用户旅程,Epic
  • 2.事件风暴中的大部分事件会在将来的系统中呈现为系统事件,或者数据库的更改
  • 事件风暴这一步,在事件工作坊中至关重

练习

将上边题目中的事件转换为事件风暴
DDD(Domain-Driven Design)领域驱动设计-(二)事件风暴_第2张图片

回顾上节

DDD的三阶段
从问题出发,逐级抽象,层层深入细化

  • 战略设计
  • 战术设计
  • 技术实现

事件风暴属于战略设计

你可能感兴趣的:(敏捷开发,DDD,领域驱动设计)