关于结对编程的思考[by:姚铭]

结对编程是我在软件工程课上才接触到的新名词。起初听到结对编程这个词时,以为是两个程序员用两台电脑一起写代码,后来才知是两人共用一台电脑合作写代码。这是就需要两人有所分工,一般来说就是相当于飞机上一个驾驶和一个副驾驶,驾驶员主要负责控制飞机的航行,而副驾驶则要协助驾驶进行航行的决策。就如1987年Intuit公司面临时间紧迫和仅有两个技术人员的情况下疯狂的结对编程:Dunn和Proulx两人一人敲代码,另一个人思考怎样写代码,几小时后双方再互换位置。这种独特的两人合作模式能给工程的进行带来更高的效率。

个人觉得结对编程的优点有以下几点:

(1)两个程序员在一起可以互补,若是两人的擅长领域不同,在结对编程时可以充分发挥两个人的长处,从而更容易获得强大的解决方案。而且两个人同时盯着一个显示器更容易发现bug,减少了个人编程中寻找bug的时间,有利于效率的提高。

(2)两个人一起工作更容易使自己投入到工程中,毕竟两人一起工作时不太容易走神,而且也不好意思自己去休息,让别人一个人工作。

(3)一对程序员在一起工作的时候,水平相对较低的一方会潜移默化地受水平略高的程序员影响,学到一些新的东西。而水平高的一方同样因为不断地把自己的想法说出来而整理了自己的思路。双方都能从中受益。

(4)不间断的复审减少了工程中出现错误的可能,同时在出现错误时,可以更快地发现错误并及时改正,提高了工作效率。

但结对编程也同时存在一些弊端:

(1)如果双方的编程水平差距过大,不利于工程的顺利进行。

(2)双方在工作过程中的交流难免会逐渐转移到与工程无关的其他话题,耽误工程的进行。

(3)在编程过程中对于算法的设计、代码的风格等方面两人难免会出现分歧,若分歧没有合理解决,则不利于工程的顺利完成。

posted @ 2012-10-22 17:33  SuperBrothersTeam  阅读(245)  评论(1编辑  收藏  举报