一、简介
本篇博客主要是对结对编程项目的总结与分析。
结对编程项目的要求是在个人项目中小学数学出题系统的基础上实现如下功能:
- 所有功能通过图形化界面操作
- 用户注册功能。用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册;用户完成注册后,界面提示设置密码,用户输入两次密码匹配后设置密码成功。密码6-10位,必须含大小写字母和数字。用户在登录状态下可修改密码,输入正确的原密码,再输入两次相同的新密码后修改密码成功;
- 密码设置成功后,跳转到选择界面,界面显示小学、初中和高中三个选项,用户点击其中之一后,提示用户输入需要生成的题目数量;
- 用户输入题目数量后,生成一张试卷(同一张卷子不能有相同题目,题目全部为选择题),界面显示第一题的题干和四个选项,用户选择四个选项中的一个后提交,界面显示第二题,...,直至最后一题;
- 最后一题提交后,界面显示分数,分数根据答对的百分比计算;用户在分数界面可选择退出或继续做题;
二、项目分工
在结对编程的项目当中,我们决定用网页的方式来实现图形化的操作。由我来实现网页的后端,林修贤同学实现网页的前端。后端的实现主要参考了我个人项目中的结构,登录逻辑基本复用,生成题目的逻辑复用了林修贤同学的个人项目中的方法,采取先生成前缀表达式,再根据先生成前缀表达式转化成所需要的中缀表达式,并且可以根据前面生成的前缀表达式利用栈进行计算结果,再利用答案随机生成其他的干扰项,这样一来整个题目的生成问题就解决了。
-
整个后端项目的大致结构如下:
![]()
-
dao层entity为数据库所映射的实体,mapper为对应实现entity数据的增删改查操作。![]()
-
service层包括了程序所需要功能的方法声明,entity中为方法中对应的返回体,Impl为对应方法的实现类。![]()
-
utils层包含了一些常用的工具类![]()
-
controller层主要根据前端的请求数据调用对应service层的服务,返回前端所需要的数据![]()
三、经验与教训
由于本次项目采用了前后端分离的方式实现,项目耦合度较低,前后端各分工明确,代码的可维护性也得到提高。前后端的交互主要是通过程序接口来实现的,所以在进行开发的时候前后端要约定好接口的规范,最好能整理成一份接口的文档。在我们开发的过程当中,就遇到了因为接口没约定好导致整个程序错误的问题。





浙公网安备 33010602011771号