结对编程项目总结
一、简介
本博文是对我与林怡鹏同学的结对项目的总结,主要总结如何复用个人项目实现结对编程项目,以及结对编程的经验、教训等。
二、个人项目的复用
- 首先,从两个项目的需求来看,个人项目与结对编程项目的共同点都是需要产生小学、初中、高中的数学题,题目的数量及细节要求都是一致的。因此生成题目的代码模块可以用于复用。
- 在个人项目中,我用一个
Creation
类来创建题目,并将试卷保存在txt文件中,部分代码如下所示。
public class Creation {
private String id;
private String grade;
private int num;
/**
* 构造方法
*/
Creation(String id, String grade, int num) {
}
/**
* 此方法向problem中再添加一个操作符和操作数,可与其他create方法配合
*/
public StringBuffer createBasic(StringBuffer problem, int level) {...}
/**
* 此方法创建一个包含两个操作数的表达式
*/
public StringBuffer createTwo(StringBuffer problem, int level) {...}
/**
* 此方法创建一个包含三个操作数的表达式,由两个操作数的题和一个操作数拼接
*/
public StringBuffer createThree(StringBuffer problem, int level) {...}
/**
* 此方法创建一个包含四个操作数的表达式,由两个操作数的题和两个操作数的题拼接或三个操作数的题和一个操作数拼接
*/
public StringBuffer createFour(StringBuffer problem, int level) {...}
/**
* 此方法创建一个包含五个操作数的表达式,由四个操作数的题和一个操作数拼接
*/
public StringBuffer createFive(StringBuffer problem, int level) {...}
/**
* 此函数用于将题目写入.txt文件
*/
public void saveFile(ArrayList<StringBuffer> bufferArr) {...}
/**
* 此方法生成题目
*/
public void creating(int level) {...}
}
在以上代码中,生成的题目类型为StringBuffer
,因为此类型便于进行字符串操作。将生成好的题目放到ArrayList
中,最后遍历ArrayList
,将数据保存到txt文件中即可。在结对编程的项目里,不仅需要生成题目,并且需要得到题目的答案。我们选择新建一个Question
类,其中包含题干以及答案。将上述代码中的返回类型StringBuffer
修改为Question
,在creating
方法中加入计算答案的部分,修改返回值,这样代码复用就完成了。
public ArrayList<Question> creating(int level){...}
- 总的来说,代码复用需要找到两个项目的共同部分,再对不同的部分加以修改。
三、结对编程的经验、教训
- 采用复制代码的方式来同步双方的代码,操作不便且容易出错,以后要考虑使用一些代码托管平台减少这部分的困难
- 在编码之前要做好详细设计,尽量做到不再轻易更改,否则费时费力
- 我们在模块化方面做得不好,导致修改代码很困难,常常需要跨文件修改
- 我们用榛子云短信提供的 Java SDK来实现验证码的功能,在此过程中要学会查看官方文档
四、总结
总的来说,这次项目的过程并不是十分顺利的。在解决困难的过程中我学到了很多新的技能。也要感谢搭档的精益求精,最终有了一个比较满意的结果。