结对编程总结by黄柏欣李斌

在十一国庆期间(当然,还有国庆之前的几天),我们进行了一个结对编程的项目。
对我受益良多,在伙伴面前发现自己的渺小,在知识面前,始终输给这浩瀚的海洋,及时发现了自己的不足,这次项目,对我来说就相当于一个实际的项目。并且在一些逻辑方面并不是考虑的很严谨,最后的问题也是非常真实。还好,在伙伴的合作下,是我们的程序接近完美重要的一环。不仅提高了效率,也保证了程序编写的正确度。
最后就浅谈一下,我们对于结对编程的感受。
 
经验与教训:
 
一、结对编程的优势
 
我们认为,结对编程的优势主要就在于设计思路的共享,和我们互相为对方避免错误。总的来说,自己在编程时犯下的错误,有些尽管很简单,但却难以发现,而这些在另一个人眼中,却会十分明显。当然结对编程也有不适用的地方,比如其他课程的编程作业,需要我们每个人独立完成,就不能依赖同伴的帮助,还有就是一些十分传统的、规范的编程任务,比如写一段最常规的快排算法,此时如果有人在旁边,就纯粹是浪费时间,因为这些内容对我们而且太熟悉了,不需要有人在旁指导。
    因为结对编程可以很大程度上提高编程效率,而且两人轮流编程,不会太过疲惫,因此十分适合敏捷开发。如果未来我们从事软件开发的工作,我们会十分乐于进行结对编程,因为这会极大的改善我们的编程体验,是编程不再那么枯燥,debug之路也不会那么恐怖。  
    比如在设计阶段,我们其中一个人想到采用策略模式来解决这个问题,采用一个接口作为抽象行为层。
另外一个人发现我们这些具体的算法类有一些公用行为,于是考虑用抽象类代替原来的接口作为抽象行为层,这样可以把那些公用行为上移到抽象层,大大减少了冗余代码,使设计变得更加优雅。
 
二、结对编程的劣势
 
结对编程之初,我们两个的配合还是有些不顺畅,使用IDE的习惯有差异,编码习惯有差异,甚至对某个词语的表达方式都存在差异,会影响到我们的效率。
正当我们相互磨合渐渐适应对方,我们的任务也基本结束了。
两个人一起编程难免出现意见不一致的现象,出现这种情况我们采取的方式是停止手头的工作,直到讨论清楚得出结论为止,有时候我们这样的讨论可能持续时间比较长,会影响到我们的生产力。

三、结对编程的过程心得

在写代码的过程中其实遇到了很多问题,看了需求文档觉得界面的实现好难,但是最后发现界面是最好做的,只要做几个按钮和文本框,再调用一个做好的皮肤包就好,(皮肤包真的很难懂)但其实最难的部分是就算结果的函数和计算题出题界面的功能实现,这个地方改了好久,总是由于逻辑错误报错,要不就是调用函数错误,好在最后在队友的帮助下完成了,总之做完这个项目之后,我觉得解决了我对界面的很多疑惑,真的学到了很多知识,尤其是对写代码更加熟悉了。

posted @ 2018-10-08 16:49 黄柏欣 阅读(...) 评论(...) 编辑 收藏