从结对编程初项目窥团队合作编程

Posted one-random

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从结对编程初项目窥团队合作编程相关的知识,希望对你有一定的参考价值。

一、  前言:

本次项目要求在个人项目的基础上,两人结对合作,对原有代码进行合作。
在上次的个人项目中,我的队友选择了Python进行开发,而我选择了Java;经过沟通后,这次的结对项目我们选择以Java版本的代码为基础,优化代码,添加模块。

 

二、  项目介绍:

  1. 项目名称:

    带UI的小初高数学学习软件

 

    2. 用户:

    小学、初中和高中学生

 

  3.功能:

    a.用户登陆注册功能和密码管理功能:

      1)用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册;

      2)用户完成注册后,界面提示设置密码,用户输入两次密码匹配后设置密码成功。密码6-10位,必须含大小写字母和数字。

      3)用户在登录状态下可修改密码,输入正确的原密码,再输入两次相同的新密码后修改密码成功

 

    b.题目生成和提交批改功能。

      1)密码设置成功后,跳转到选择界面,界面显示小学、初中和高中三个选项,用户点击其中之一后,提示用户输入需要生成的题目数量;

      2)用户输入题目数量后,生成一张试卷(同一张卷子不能有相同题目,题目全部为选择题),界面显示第一题的题干和四个选项,用户选择四个选项中的一个后提交,界面显示第二题,...,直至最后一题;

       (小初高数学题目参照个人项目)

      3)最后一题提交后,界面显示分数,分数根据答对的百分比计算;用户在分数界面可选择退出或继续做题;

 

 

三、  项目模块及改进

  1. 总体:

    由我负责用户界面的编写和发送短信模块的开发;

    队友负责对我个人项目的代码进行补充优化;

 

  2.登陆模块

    前端:一个窗口

    包含提示的文本,可供用户输入用户名和密码的文本框,用于登录或注册交互的按钮;可以转向注册模块或题目生成模块;

    后端:修改代码,从前端获得用户输入的用户名和密码,与文件中储存的已经注册的用户进行比对,判断能否登陆并返回。

    这一部分代码与个人项目中区别不大,基本没有修改。

 

  3.注册模块

    前端:两个窗口(发送注册码验证手机号&设置密码)  

    1. 包含提示的文本,可供用户输入手机号和注册码的文本框,用于发送注册码或注册交互的按钮(也包含判断注册码是否正确的逻辑)
    2. 包含提示的文本,可供用户输入密码和确认密码的文本框,用于登录交互的按钮(也包含修改密码是否成功的逻辑)

      可以转向题目生成模块

            后端:主要包含两部分难点:发送短信和存储用户名和密码到文件。发送短信部分由我完成,使用了阿里云的短信发送业务和阿里云提供的 java端的sdk,完成的代码也是根据阿里云提供的demo进行了修改。这一部分在网上有许多相关博客和样例,这里不

      再赘述,感兴趣的读者可以移步。

      由于结对项目本身需求比较简单,以实现为主要目的,涉及的用户量仅以测试为主,所以直接以txt文本格式,不加密直接存储用户名和密码。也是比较基础的采用Java的文本流写入。

 

  4.题目生成模块

    前端:三个窗口(题目选择,作答,显示结果)

    1. 包含提示的文本,3个选择难度的单选项,可供用户输入题数的文本框,用于修改密码或生成题目交互的按钮(可以转向注册模块修改密码)
    2. 包含提示的文本,4个进行单选按钮,用于更换题目的“上一题”“跳转”“下一题(结束答题)”交互的按钮。(切换题号依靠可输入的消息提示框实现)
    3. 包含提示的文本,用于退出或重新答题交互的按钮。(计算得分的逻辑在前端实现)

    后端:主要部分是生成问题和候选项,而难点在于生成问题后的正确答案的计算。这一部分由我的室友完成。

      生成候选项比较简单,可用的方法也很多,这里采用的方法是,根据正确答案,给其他选项一个浮动值,保证结果与正确答案不会相差太多,增加迷惑性。

      运算结果是根据输入的字符串计算的,通过栈结构,将整个算式分为几部分,从优先级高的部分开始一层层计算;说的简单,解释起来也算比较复杂,还是给出示意图吧;

技术图片

 

 

 

四、  感想与收获

开发前的工作比开发中的更重要。需要商量的事情有很多:分工、前后端之间接口的约定、代码风格的确认、工作日程的安排…这些应该提前准备的事项越迟做,对项目的完成进度来说也越危险。

 

以上是关于从结对编程初项目窥团队合作编程的主要内容,如果未能解决你的问题,请参考以下文章

个人学期总结

十分有趣却有些遗憾的结对编程——两位女程序员的挣扎

软件工程读书笔记——结对编程那些事

软件工程课程总结

《构建之法》第四章第十七章读后感

结对编程心得---------优秀的队友是成功的一半