结对编程-试卷生成系统的实现总结与反思
一、效果展示
1.登录界面

当密码输入不符合格式时,给出提示。符合格式后才可以验证登录。
2.注册界面
由登录界面点击注册即可显示注册界面:


输入验证码后即可进入下面的账户名和密码设置阶段:
此时由于我输入密码123456不符合要求显示提示,

正确输入密码后,即可成功注册:

3.题目选择界面:

4、做题界面:

5、题目做完后:

此时可以选择退出登录或者返回重新出题。
总体来看,实验所要求的的功能我们的作品是都实现了的。但是有的细节地方,实现的不是特别好,甚至是存在错误。
二、代码复用说明
我本人主要是负责后端代码的编写,下面就后端的代码框架和类设计,以及对个人编程代码的复用。
springboot项目结构如下:

其中SysControoler是和前端对接的一些接口实现。src中paperGenerator是试卷生成和生成答案的主体部分,PaperItem是一个对象类,每个对象都包含一道题目的题面,答案,以及选择。UserManager类是负责和数据库连接验证用户信息的。
1.PaperGenerator的结构:

其中,代码结构复用了个人项目的代码结构,生成题目的逻辑部分代码也是完全复用,不同的是因为需要解题,所以生成题目的过程索要保存下来的一些记录相较于不考虑计算就有所不同,所以在每个生成函数里添加了解题需要的数据的记录,为了配合解题,又另外写了calculatePrimaryQuestion,以及生成随机的三角函数的方法generateRandTig(),另外多了的removeRedundantParentheses函数和changeItemType函数只是简单的去括号和转换返回类型的函数,也是因为解题的需要而设置。
简言之,类设计结构和生成题目代码结构的部分是复用个人项目的。
2.UserManager
个人项目中我用了文件来实现了和这个UserManager有相同接口的类,但我也实现了这个连接数据库的UserManager,而且当时实现的接口和功能也是完全能用和够用的,所以我就将整个类拿来用了。
但是,我对自己的代码复用不满意,这个主要是因为个人项目的方法设计就不是很好,每个方法体所实现的内容太多,没有拆分功能,导致很多函数我是本次项目中又再次拆分调整的。
三、本次结对编程的经验和教训
其实本次结对编程给我们两带来的主要是教训。。。
我们在一开始就进行了明确的分工:我负责后端代码,我的队友负责前端界面设计和代码。一来是由于我们缺少开发和合作经验,所以并没有制定好双方具体怎么合作,导致我们前面的合作流程特别慢。二来我自己也在开发过程中插手前端的设计(就是我也尝试自己去实现页面),所以我的后端代码完成的也很慢,而且干扰了我队友前端界面的设计。最后3天我们坐在一起,边讨论,边对接整合代码的过程到时很快,但是就是由于前期的设计没有完善,所以bug频出,改bug耗费了特别多的时间,最终也没有消除全部的bug。
更多文章请关注《万象专栏》
转载请注明出处:https://www.wanxiangsucai.com/read/cv11419