结对编程总结

1. 简介

本次结对编程的项目由我(吴依凡)和陈熠玮同学完成。前端采用的是vue+ajax+elementui,后端采用的是Spring Boot,我主要负责前端的编写。由于我个人项目的代码是使用Python语言编写,为了给后续的团队项目积累经验,本次选择使用Java语言的陈熠玮同学的代码作为结对编程的代码。

2. 前端实现说明

主要页面有5个

  1. Login.vue 登录页面
  2. Register.vue 注册页面
  3. Main.vue 系统主页
  4. ChangePassword.vue 修改密码页面
  5. Index.vue, 该页面主要作为Login,和Register的父路由,通过选项卡来进行登录和注册这两个子路由来加载这两个页面。
    结对编程总结_复用

界面展示

登录界面

结对编程总结_个人项目_02

注册界面

值得一提的是,这里的设计只有手机号输入符合规范,之后输入密码,验证码的输入框才会弹出来。

结对编程总结_复用_03

主页界面

这里可以选择题目类型与题目数量,生成题目后在对应选项点击即可选中

结对编程总结_验证码_04

修改密码界面

鼠标移至用户处可弹出“修改密码”和“退出登录”按钮,点击对应按钮可执行对应功能

结对编程总结_结对编程_05

结对编程总结_复用_06

3.后端实现说明以及代码的复用

后端实现说明

后端主要有 controller,files,pojo,service,utils

其中files存储用户的信息,通过一个userinfo.txt来存储已注册的用户的信息。

结对编程总结_修改密码_07

pojo里面是一些实体类,Resp是传送前端和后端数据的实体,user是定义的用户,MessageResult是前端后端校验验证码的实体,Login是将用户登录时的数据存储的实体。

结对编程总结_结对编程_08

controller层的两个cotroller,分别调用service里面定义好的接口,从而Service调用Utils工具类实现这个项目需要完成的功能。

结对编程总结_复用_09

结对编程总结_验证码_10

结对编程总结_验证码_11

代码的复用

结对编程其实对于代码的复用,主要只是体现在我们的出题的逻辑里面,其余为了前端后端更加契合,我们对于我们的之前的个人项目的代码进行了或多或少的修改,以及我们为了使得在做题过程中,题目容易计算,考虑到用户的体验,我们在原有的三角函数的基础上,将三角函数的值设置成了1/3Pi, 1/4Pi, 1/6Pi来表示我们的60°,45°,30°,以及在开方过程中,我们将操作数设计成平方数。

结对编程总结_修改密码_12

结对编程总结_结对编程_13

结对编程总结_结对编程_14

其次代码的复用,由于在登录验证和修改密码的同时,我们需要对于我们存储用户信息的txt文件userinfo.txt进行读写操作,这一部分代码复用了上一次的将题目写入文件的操作。

文件读写

结对编程总结_结对编程_15

4. 遇到的问题

在进行结对编程的过程中,我们需要对两者定义的接口,消息的变量进行统一,统一的标准没有在开始之前定好,结果就导致了后续的test过程中,出现了问题,这也给我们发现问题消耗了很多时间。相信这对于我们团队项目的开展有一定的经验教训。同时在进行出题逻辑的编写过程中,发现在对题目的答案进行计算的过程中,进行字符串操作,很容易出现index越界的结果,导致报错,通过一一调试最终还是解决了这个问题,计算题目答案也是一个比较考虑逻辑的问题,起初自己的想法是通过栈去解决,实践后发现有点困难,于是通过利用StringBuilder和容器来处理我们的题目,将题目的括号先处理掉,之后将数字和运算符放到两个容器中,根据优先级去处理题目。

5. 总结

结对编程这锻炼了我们团队协作的能力,为我们接下来的团队项目积累经验,同时本次编程的内容也让我们学到了很多之前未涉猎过的知识,这些无疑是增加了我们的能力储备。本次编程同样锻炼了我们学中做,做中学的能力,这些相信对我们的未来又很大帮助。