软件工程导论——结对编程项目总结
结对编程总结
1、关于复用个人项目实现结对编程项目
在与结对伙伴的讨论后,决定了各自负责的需求,那么我负责的是实现生成试卷以及答题窗口。对比个人项目,我需要实现的功能是显示一个答题窗口,而且每次显示一题,在答完了一题之后才可以进行答下一题,直到答完最后一题,点击提交试卷就会显示试卷分数。所以如何复用呢?相对于在个人项目中直接的生成试卷并写在txt文件中,这一次我把试卷题目和答案存储在一个二维字符串数组里,并且把生成试卷的方法以及显示窗口的方法写在两个类中,在显示窗口的类中调用生成试卷的类并实现其中的方法,将题目数据传到显示窗口类中,将其一题一题显示。
2、结对编程经验教训
①控制显示内容
在做项目的过程中,一个待实现的需求是答完一题才能进入下一题的答题,在我把四个单选按钮实现之后,在“下一题”这一个按钮上我发现无法直接让显示试题内容的标签的内容跳到下一题(我用一个整数控制第几题,而按钮监听器无法对其进行控制),在查询了网上的做法之后,发现必须把控制显示试题第几题的整数设置为类的静态变量成员,如此才能在按钮的监听器上改变其的值,以此做到做完一题就会跳下一题。
②关于静态方法以及类方法
在做项目之前与伙伴的讨论中,伙伴建议我多写几个类,这样可以做到每个功能对应的类,阅读起来一目了然,我也觉得这样做很好,但在实现窗口的类中(此类为主类),我设想的是在我与伙伴的代码结合的时候,只需要直接创建一个类的对象实例即可以其类方法实现需求。在前期的编写代码中,确实也没有问题,代码衔接也没有问题。但写到最后,我发现在答题过程中窗口上还必须有修改密码、注销和退出功能,但如果我将实现方法写在类方法中,那么就不能再进行后来的注销或修改密码功能。所以解决方法是我将所有的方法写成静态方法,那么无需实现对象实例也能随意切换方法,之前的方法只是适合所有功能写在同一个类中。
③与伙伴沟通方面的问题
在实现需求到达大半的时候,我提议尝试将两人代码结合在一起看看能否正常衔接。而在此之前,我只是准备好了小学阶段的题目实现,而在讨论时我并没有强调,只是说了一次,然后同伴在结合代码时就遇到了数组越界问题,因为初中高中我还没有准备好题库,这个时候就浪费了一些时间来寻找问题。所以我学到的是重要的东西一定要和同伴说清楚,否则会浪费彼此的时间,降低项目编码效率。