结对编程之经验教训总结
“宝剑锋从磨砺出,梅花香自苦寒来。”
整整做了一个星期,终于将结对编程项目做完了,多少心酸只有自己知道,多少成就感也只有自己知道。这是真正自己动手,从最初的一头雾水到现在水到渠成,为自己鞠一把辛酸泪的同时,不禁也有一丝自豪:我还是很厉害的,用心去做还是能做出来的。
项目思路
我和队友的个人项目都是用C++写的,因此,这个结对编程我们选择的软件是QT。
我们把项目分为了两个部分:登录注册部分、题目显示部分。
登录注册部分我们做了四个界面:登录界面、注册界面、设置密码界面和修改密码界面;
题目显示部分有三个界面:选择类型界面、答题界面和成绩界面。
在制作时,我们先做出界面的基本框架,运用现学的知识,使用槽对界面进行连接,通过这种方式建立类与类之间的内部关系。然后我们再实现各个部件的功能,完成相应模块的代码,当然这其中出现了很多bug,我们一直在不停的debug。最后,当功能点都实现了之后,我们又花了一天半的时间对界面进行布局美化,同时测试运行,完善功能。
个人项目复用
虽然这个结对编程和个人项目有所关联,但是在实现的时候并不是很一样,除了生成试卷的函数进行了复用,其他的基本上都是重新写的。因为这里用户名和密码不是固定的几个,而是要用手机号注册,密码也是用户自己设置的,因此,个人项目的登录在这里就无法直接用了。个人项目中并没有计算出题目的答案,而在结对编程中又要有正确答案的选项,因此这部分也是要重新写的。而查重那一部分,由于个人项目的要求是同一个账户生成的试题不能重复,因此需要从文件的角度来进行查重,但是结对编程只需要保证一套卷子的试题不重复就可以了,这里使用vector数组就可以了。个人项目需要切换账号,但是结对编程并没有这个要求。综上所述,我和队友都感觉只有生成试卷那部分代码重用了,其余都是要重新写。当然,生成试卷的这部分代码是整个项目的核心,由于个人项目完成了,在这方面我们就省了很多时间,所以我们的结对编程的时间基本上都在可视化界面上。
教训总结
1、结对编程中,我得到一个结论,那就是1+1>2,我自认为,如果不是合作编程,在遇到问题我一定会花费更多的时间解决,我做出来的东西也会有很多功能没有实现,很多细节没有考虑。最重要的是,当思路陷入死局的时候,两个人一起讨论更容易打开思路,走出困境。
2、要养成一个记录的好习惯。在我们结对编程刚开始的时候,遇到很多错误,但是通常我们是遇到一个解决一个,可是到了最后却发现前面解决过的问题,后面又不会解决了。这里最明显的是输出问题,由于我们对qt语言的不熟悉,不怎么会debug,结果不对的时候就把中间变量输出,但是又不知道怎么输出QString变量。最初找到了一种解决方案,输出了一次,解决了当时的问题,但是后来需要的时候,又忘了如何输出,又重新百度,浪费了很多时间。然后从这个时候开始,我们才意识到应该用一个文档记录我们遇到的问题,并附上解决方案,这样才会学到更多的东西。下面附上从我们开始记录之后记录到的问题。
3、学无止境。虽然这个项目做完了,但是我知道,这个项目实现的功能其实很简陋,还有可能在后面测试的时候又发现了现在没有发现的问题。在最后完善代码的阶段,每次我们感觉已经很完美了,但是一测试,又有一些小小的问题,然后我们就要开始修改。好在,这个项目我们都是分类写的,遇到问题修改起来还是有头绪有思路的,这又一次证明了模块化编程对于维护修改的重要性。
4、沟通很重要。在整个项目,由于沟通的问题,原本想表达的意思对方get不到,因此起了好多次争执,其中还有几次我们争执到最后发现我们要表达的意思是一样的。这样子的情况花费了我们很多时间,但同时也锻炼了我们,到后面我们交流起来就比开始的时候顺畅多了。同时,我个人习惯的不同,我个人习惯由难到简,由面到点,但是队友习惯从简入难,由点及面,这个也不能说谁对谁错,主要还是要交流沟通,互通有无,取长补短。
5、控制情绪,心态平和的写代码。由于这个结对编程的工作量大,时间紧,中间又夹杂着很多其他的事情,因此我们都有些暴躁,尤其是遇到问题,就更加暴躁了,唉声叹气传递负能量,最终也不能解决问题。后来我们学习其他小组,彼此打气,互相鼓励,效率高多了。
总而言之,每次的实验都是一次学习进步的机会,这次的结对编程,真的让我们受益颇多。
原文地址:https://www.cnblogs.com/qszy-yhh/p/11601249.html