结对编程项目总结和特色展示

结对编程项目总结

项目历程

  本次结对编程项目,我的合作伙伴是加林同学,在开始结对编程之前,我们先分享了个人在个人项目中的代码,并互相做了代码的分析。最后决定以我的代码为基础,开发更多的功能和UI界面,完成结对编程项目。
  在项目正式开始前,我们先做了分工,我负责后端的函数的实现,加林同学负责前端页面的开发。我们根据结对编程的项目需求,提出了以下需要实现的功能。

  1. 登录:登录时要账户名与密码匹配才能登录。

  2. 注册:注册时账户名和手机号码不可已存在,且密码要满足特定的要求才能注册成功。

  3. 更改密码:在登录状态下可以更改密码。

  4. 出题做题:根据用户输入的题目类型和数量产生题目,并统计得分。

根据这些需求,我们制定了用于前后端交互的函数的函数名称,传入参数类型,返回值类型。

部分函数如下:

Boolen UserCheck (String user, String password)  //登陆界面判断
Boolen UserNameCheck (String name) //注册用户名是否存在
Boolen Password(String password) //密码合法性检验
Boolean phoneNumberCheck(String number)//手机号码重复检测
String CheckNumber(String phonenumber) //获得手机验证码
void problemsGenration(String type, int num)//按照类型生成题目
double calculate(String problem)//获得答案
sendMessgeToClient(String number) //向用户发送验证码

  制定好了前后端的标准后,我们就开始分头行动,并每天晚上汇报各自的进程。在第一次公布的作业截至时期之前,我们就完成了基本的功能。后来作业截至的时间后延了一周,于是我们对原有的项目进行了排查,发现了一些问题并改正。还新添了一个查询历史分数的功能。
  整个开发过程中,我遇到的最难解决的一个问题是对产生题目的答案计算,因为我们使用的是java语言进行开发,没有类似python中的eval函数,而且产生的题目中还包含着特殊的符号,所以怎样计算答案就成了一个麻烦的问题。我先是将解决问题的思路写在纸上,对各种特殊情况都做了分析,再编程实现。整体的思路大致是先将包括三角函数运算,平方运算,根号运算的单项式值求出,将式子转化为只有加减乘除的算式。再利用堆栈的思想将运算符存起来,进行运算。最终实现的效果还算理想,产生的式子都能成功计算出答案。
  还遇到了发送验证码的问题,因为以前从没有用过这个功能,所以到网上参考了很多资料,最后我使用的是榛子云的短信用户系统的短信服务。

个人收获

  第一次做结对编程,集两个同学的精力和想法共同完成项目,中间两个人会有很多交流、讨论的机会,也会产生一些冲突。通过两个人互看代码,两个人一起编程,对自己确实有一些提高,一些自己平时注意不到的,形成已久的编程恶习可以被对方发现指出。还有在编程时要考虑到让自己的队友更容易理解自己的代码,在编程的时候也会格外注意。
  因为在一开始就制定好了交互的标准,所以最终代码合并的时候没有出现大的问题,但是因为没有使用版本管理工具,也还是出现了一些意料之中的问题。
  比如没有制作产品的原型,导致在实现的过程中不断地增加了一些新需求,导致队友有些疲于应对。没有使用版本管理工具,导致在合并代码或者做一些小的改动的时候要来回的发送文件。
  在之后的团队项目中,我会吸取以上教训。
  最终我们两个合作完成了此次结队编程项目,对于项目的整体效果,我还是基本满意的。

功能特色&&效果演示

登录及注册

 

主界面

修改密码

查看历史成绩

出题做题评分

 

猜你喜欢

转载自www.cnblogs.com/Hnufsh/p/11596244.html