1 需求背景及由来由开发提出的需求
最近公司开发向我们提了一个需求,要求我们在mock挡板时支持加解密和响应延时功能,但是我们现在用的easy-mock这个工具本身并不支持加解密功能,思来想去,那不得自己撸一个MockServer?正好把团队的测试开发能力给提起来。
我们公司CTO说过,作为一个团队Leader,当团队需要你是总监的时候,你就是总监,当需要你是开发的时候你就得是开发,并不是说你是总监,那你就只能干总监的活。基于这种思想,我决定自己亲手撸一个MockServer,正好锻炼下自己的动手能力。
2 需求分析及技术栈选型
说干就干,因为团队之前没有测试开发团队,也没有测试开发的一套架构和技术栈,所以要先确定技术栈,技术栈的选择原则有三种:1、选择当前主流的技术栈;2、和现有开发技术栈同步;3、选择自己最熟悉的技术栈;这里就不对如何选择做论述了,直接说答案,技术栈和现有公司开发保持一致:SpringMVC Mybaties MySQL JAVA JDK1.7 VUE。技术栈老是老了点,但是没关系,能真实的解决问题并且借此锻炼开发能力即可。
选择好技术栈之后,就要开始出需求做设计了,首先我们先把核心需求写出来:
- 增删改查Mock接口;
- 支持固定/随机 延时;
- 接口支持加解密;
- 根据不同的请求参数,返回不同结果;
- 支持自定义http协议状态码;
需求有了,当然你也可以使用Axure RP 来画一画原型图(我是画了,但是我觉得画不画都行,主要是你脑子里面要有那个原型图)。
3 详细设计之E-R图该怎样画
接下来我们完成整个详细设计,详细设计很重要,详细设计做的好不好,直接决定了你程序的可维护性、健壮性等等,接下来我要说的就是详细设计中的关键性步骤:E-R图,这个图描述了你程序中的有哪些字段、哪些功能,相当于在详细设计阶段将需求以程序的方式进行梳理。
下面我将从这四个部分来教你如何画E-R图:
- 为什么要画ER图,它的主要作用是什么
- ER图里面的关系及各图形解释说明
- 如何画ER图
- MockServer E-R图示例
1、什么要画ER图,它的主要作用是什么?
我们画ER图是为了搞清楚实体和实体之间的关系,相当于梳理关系的一个过程。它的主要作用就是帮助我们梳理清楚程序中所有实体的关系,并且ER图画出来了,数据库结构也就出来了。
2、ER图里面的关系及各图形解释说明
- E-R图:实体-联系图,提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。
- ER图的实体(entity)即数据模型中的数据对象,例如人、学生、音乐都可以作为一个数据对象,用长方体来表示。
- ER图的属性(attribute)即数据对象所具有的属性,用椭圆形表示,用下划线表示唯一属性。
- ER图的关系(relationship)用来表现数据对象与数据对象之间的联系,关系用菱形来表示。
- 矩形:实体;通常是现实世界中的一个明确物体;一般是名词;
- 椭圆:实体的属性;一般是名词;
- 菱形:实体型之间的联系;一般是动词;
- 连接线:表示联系,无方向边;
- 联系类型:1:1、1:n、n:n;
- 双边矩形:弱实体;一个实体必须依赖于另一个实体存在,那么前者是弱实体,后者是强实体,弱实体必须依赖强实体存在,例如学生实体和成绩单实体,成绩单依赖于学生实体而存在,因此学生是强实体,而成绩单是弱实体;
- 双边椭圆:一个实体的某个属性可以有多个不同的取值,例如一本书有多个分类,例如科学、医学等,这个分类就是多值属性,用双线椭圆表示;
3、画ER图流程
- 确定这个模块有哪几个核心的对象以及具体有哪些特征;
- 思考这些对象之间的关系,如何相互转变;
- 将把他们用ER图的方法表述出来;
4、MockServer E-R图 示例
4 小结E-R图该怎样画
今天我们对需求进行了简要分析,以及如何画E-R图,接下来我将带你一步步完成这个MockServer,敬请期待。