因为和队友在写个人项目时使用的都是C++语言,所以在结对编程时使用Qt平台创建图形化界面。结对编程的工作量还是很大的,感觉近一周的大部分时间和精力都花在项目上,脑子里都是代码orz。
看到结对编程的项目需求后,我们对接下来的要做的事情有了一定的计划。首先是熟悉开发环境,因为是我们都是第一次做图形化界面,选择了Qt作为开发工具。一开始对于Qt都是没有接触过完全一头雾水的状态。所以我们决定先花一天的时间学习Qt的一些基本操作和了解相关的内容。当大概了解清楚Qt的操作和实现一些简单的功能操作之后,我们决定开始编写程序。我们依次实现的功能为:登录、修改密码、选择出题类型、输入出题数目、出题、计算正确结果、答题界面、计算答题得分、结束界面、注册界面,功能点实现之后又进行了界面美化。之所以将注册界面放在最后,是因为上网搜索了很多短信服务平台后都没有发现有C++的接口,一时之间不知道该怎么办,所以选择先跳过注册进行后面的步骤。
在代码重用上,感觉用C++写能重用的代码只有出题部分,其他功能重点可能更多放在了界面切换时数据的传输以及信号和槽上。
接下来说一下心得体会吧,写项目过程的艰辛跟平时做实验不是一个等级的,我的体会有很多。
1、好不容易实现的一个功能在后面的测试中很容易出现错误。因为在写代码的过程中肯定会出现一些你想不到的情况,这也充分体现了测试人员的重要性。每发现一个bug都需要再对代码进行检查和修改,所以最好是一开始尽量考虑到更多的情况。
2、我感觉结对编程和个人项目相比,前者是需要两个人合作完成,后者则只需要自己完成。所以结对编程的效率如何最大化有很大一部分取决于相互之间的交流,我和我的队友应该是算互相很熟悉了,但在代码交流上也会存在一些问题,互相编程习惯的不同(比如说我喜欢先将基本的完成,再一步步完善,她则是喜欢一次性从开始到后面都做好),还有互相可能会出现交流上意思的误解。所以我想在以后的团队项目中,应该要更加注重交流,多聆听其他人的意见和想法可以学到很多。有的时候自己编程陷入困境时,他人的一个建议和想法可能可以轻而易举地打破这个僵局。
3、当一个问题卡住的时候不要太心急,可以适当放松一下。因为这次结对编程持续时间很长,我和队友也是一直在做,然后过程中也经常出现问题,有时候心情可能就比较暴躁,这种情绪传递给队友会不太好,相互鼓励静下心来解决它才是王道。
4、在每次出现问题时,最好都用一个记事本进行记录。这样以后再遇到能快速想起解决,我们遇到很多类型之间的转换,但在没记住之前,几乎没遇到一个就要再查一次,浪费了时间和精力。
5、测出来的bug真的好难改啊啊啊,最后一次测出来的bug是每次登录只能修改一次密码,找了很久很久,最后调试输出后发现,是因为再次修改密码后的界面不是由登录界面传递到修改密码界面的,所以用户名没有传递,是空的!!所以在使用Qt时传递参数时要格外小心。
5、最后,网上能找到的资料还是很多的,但真假难辨,所以看怎么使用它们,遇到问题多查找资料吧,网上那么多解决方法,总有一个能对上你的问题。只要记住,找到一个解决方法时,先大概测试一下它的正确性,否则你会浪费很多时间。
这次结对编程项目给我带来的收获很多,让我体会到了一个人学习能力和沟通交流能力的重要性,以后要多加强这方面的能力的锻炼。同时也希望自己在以后面对困难和问题时能更加冷静面对吧,未来路还很长,要学习的东西还有很多很多,继续加油呀。