结对编程
结对编程
组员
林清荣:201421122102
黄冠:201421122115
项目地址
Coding.net:https://coding.net/u/WocPencil/p/arith-exercise/git
本次作业完成的题目内容
- 实现GUI;
- 记录用户的对错总数,程序退出再启动的时候, 能把以前的对错数量保存并在此基础上增量计算;
- 有计时功能,能显示用户开始答题后的消耗时间;
- 界面支持中文简体/中文繁体/英语。用户可以选择一种。
需求分析
GUI
- 要好看
- 分为开始、答题、结果三个界面
- 可以在每次测试前设置数量和范围
- 测试完后显示成绩
记录对错总数
- 每次测试完成时,将对错总数量和保存在本地的总数量相加,并将相加后的值保存
- 将对错总数显示在测试结果面板上
计时功能
- 在用户答题时实时更新已用时间
- 测试完成后显示所用时间
本地化界面
- 通过对话框切换语言
- 切换语言后,所有已显示的界面立刻刷新文字,显示切换后的语言
- 将用户选择的语言保存在本地
程序设计
我主要做的是实现计时功能类的设计:Timer
该类的思维导图如下:
- start()方法中主要通过线程实时刷新时间,通过调用队友写的update()函数每隔1秒刷新一次界面面板中的时间;
- 为了使显示在面板中的时间更加符合我们平时看时间的习惯,写了refTime()方法将时间自定义格式话 分钟:秒 的形式;
除了上面的类还写了一个方法
public static void saveResult(Map<String,String> data)
//实现对对总的增量计算,该方法中调用的接口是队友写的
注:代码太简单,就不在此展示了
结对过程
由于作业1队友写的代码比较完善,所以此次结对编程是在队友的作业1基础上继续编写的。结对过程中,我们一起做的需求分析,考虑功能上可行性(事实上,大部分是由队友想的,我只提了很少的意见),编写代码,做代码测试。
小结感受
在结对编程中,我觉得我是挺痛苦的,因为我的编程能力比较差,队友的编程能力是属于比较强的那种,而且对代码有种追求完美的执着(我觉得这个很需要我去学习,不管以后我还写不写代码)。看到我分配的任务之后,我第一感觉就是该怎么实现,想问队友又觉得有点不好意思,不问自己去查真的是很蛋疼,所以最后还是问队友的想法,然后自己在去实现,确实是达到事半功倍的效果。当我写完的时候,队友让我写个测试,我就有点懵了,这个该怎么写?他也不愧是编程老手(我自己这么觉得的),对工具的使用很熟悉,直接一个快捷键是打开创建测试类的窗口(。。。这就是差距啊!!!)。测试的时候找出了几个问题,改了过来。
可能是我对编程的兴趣不大,所以在写的过程中有点拖后腿。
我们结对编程一共分了两个事件段,刚开始写的时候确实挺烦的,为什么有这种作业?不过跟在一起队友写代码,很真实反映出自己在写代码时的很多缺点,比如没耐心,不会查资料,取变量名太随意,代码风格太差,注释不规范。。。感觉有点更加坚定的放弃编程这条路。
评价合作伙伴
他属于很有原则的那种人(至少在编程这方面上),典型的技术宅。我比较钦佩他的是做事专注度很高,向他请教问题的时候都会心平气和的跟你解释。对于代码的构建他不会单纯只考虑实现了就好,一定会按照标准先去搭建模型,再一步一步填写代码。他的代码风格也很好,让人看了很舒服(虽然不一定看得懂他写的是什么)。