结对编程

2015-08-04 16:28 作者 : 围观 : TAG标签: 软件开发 职场百科 编程

       在软件开发的过程中,需要程序员进行编程工作。为了提高编程的效率,有人探索出一种“结对编程”的方式。 求职信息


求职信息

       一、概述 面试问题


面试网

       结对编程(Pair programming)是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作,一个人输入代码,而另一个人审查他输入的每一行代码,也就是两个人写一个程序,其中一个人叫Driver,另一个人叫Observer,Driver在编程代码,而Observer在旁边实时查看Driver的代码,并帮助Driver编程。

面试问题


面试网

       有实验证明,结对编程时间花销比单人编程增加10%的时间,也会比单人编程减少15%的代码BUG。如果再算上后期代码的维护和学习成本,结对编程比单人编程更有效率,更为节省成本。

面试网


求职面试

       二、产生背景

求职面试


qzm4

       结对编程开始流行还要追溯到肯特?贝克在1999年撰写的《Extreme Programming Explained》一书。根据书中记述,公司应该非常快速地发行软件,而且软件本身也应该在发行的过程中不断得到完善,而两人结对编程则可以更加快速的地实现这一点。 qzm4


求职信息

       二十世纪八十年代,贝克曾与全球首个维基系统的开发者沃德?坎宁安(Ward Cunningham)同在一家软件公司工作,贝克在此期间迸发出了很多关于“结对编程”的想法。在坎宁安要求贝克检查一款软件应用的漏洞过程中,双方的合作关系逐渐形成。最终双方的合作关系发展得越发深入,两个人此后开始结对处理任务。

求职信息


礼仪

       三、结对编程的两种变体

求职信息


qzm4

       1、远程结对编程 求职面试


面试问题

       远程结对编程,也称作虚拟结对编程或分布式结对编程,是指两个程序员不在同一地点,通过协同编辑器,共享桌面,或远程结对编程的IDE插件进行的结对编程。远程结编程引入了一些在面对面的结对编程中不存在的困难,例如协作的额外时延,更多的依赖“重量级”的任务跟踪工具,而不是“轻量级”的索引卡片,以及没有口头交流导致的在类似谁“控制键盘”问题上的混乱和冲突。

qzm4


面试问题

       2、乒乓结对编程

面试网


qzm4

       在乒乓结对编程中,观察者编写失败的测试用例,驾驶者修改代码以通过该用例,观察者编写新的单元测试用例,等等。这个循环持续到观察者不能写出失败的测试用例。但是这种方法比估计的计划要花更多的时间。

面试网


qzm4

结对编程 求职信息


求职信息

       四、结对编程的优势 求职面试


礼仪

       1、降低学习成本,提高程序员的能力。程序员一边编程,一边共享知识和经验,有效地在实践中进行学习。他们互相帮助,互相教对方,可以得到能力上的互补。

求职信息


求职面试

       2、可以让编程环境有效地贯彻Design。 礼仪


求职面试

       3、增强代码和产品质量,并有效的减少BUG。

面试问题


求职面试

       4、在编程中,相互讨论,可能更快更有效地解决问题。

面试网


求职面试

       5、一定时间周期地打乱配对,让参与项目的人员相互转换位置,使得维护繁杂的文档变得不那么重要。大家分组打乱后,口头的交流很容易让所有人都熟悉每个模块,这样对于公司也很有好处,项目中万一有人离开,也不至于影响到整个项目。最后,开发过程变得更为有趣,任何人的交流变得很多,大家关系更为融洽。

面试网


求职信息

       五、结对编程的缺点

面试问题


qzm4

       1、对于有不同习惯的编程人员,可以在一起工作会产生麻烦,甚至矛盾。不合适的沟通会导到团队的不和谐。 求职面试


求职信息

       2、有时候,程序员们会对一个问题各执己见(代码风格可能会是引发技术人员口水战的地方),争吵不休,反而产生重大内耗。

面试网


求职面试

       3、两个人在一起工作可能会出现工作精力不能集中的情况。程序员可能会交谈一些与工作无关的事情,反而分散注意力,导致效率比单人更为低下。有些时候,程序员们在一起也可能会滋生不良气氛。比如,合伙应付工作,敷衍项目。 求职信息


求职信息

       4、面对新手,有经验的老手可能会觉得非常的烦躁。有经验的人更喜欢单兵作战,找个人来站在他背后看着他可能会让他感到非常的不爽,最终导致编程时受到情绪影响,反而出现反作用。

礼仪


面试问题

       5、新手在面对有经验的老手时会显得非常的紧张和不安,甚至出现害怕焦虑的的精神状态,从而总是出现低级错误,而老手站在他们后面不停地指责他们导致他们更加紧张,出现恶性循环。最终导致项目进展效率低下,并且团队貌合神离。 面试问题


qzm4

       结对编程技术是一个非常简单和直观的概念,能达到事半功倍的工作效果。但是,人与人之间的合作不是一件简单的事情——尤其当人们都早已习惯了独自工作的时候。实施结对编程技术将给软件项目的开发工作带来好处,只是这些好处必须经过缜密的思考和计划才能真正体现出来。 礼仪

声明:结对编程来源于互联网,其版权均归原作者及其网站所有,本站虽力求保存原有的版权信息,但由于诸多原因,可能导致无法确定其真实来源,如果您对本站文章、图片资源的归属存有异议,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意!

相关文章