在查阅了相关资料后,我对结对编程有了一定理解。
定义:
在软件开发的过程中,两个程序员坐在一起,共同写代码完成一个功能,当一个程序员编写代码时,另一个程序员在旁进行审查代码,两个程序员经常互换工作内容。结对编程是敏捷开发的一种方式,是极限编程的重要组成部分。
优点:
一、两个人的知识储备大于一人,当两个程序员共同编写代码时,发生两个人都涉及不到的知识领域的可能性较小,所编写出的程序通常能达到良好的解决效果,这是软件工程方法论所不具备的。
二、结对编程能提高程序员的编写专注度,减小程序员受外界因素所带来的影响,避免程序员做出错误的决定以至于整个程序要推倒重来。
三、结对编程能快速响应代码具有的问题,减少bug的产生,提高代码的质量,加速开发团队的开发进度,加快产品的生产效率。
同时也存在一定的缺点:
一、当两个程序员存在较大经验积累差距的时候,代码编写的过程中可能会发生人员矛盾,导致团队的开发进度减慢,同时也会影响整个团队的氛围。
二、当两个程序员编程时有相同的盲点时,可能会把简单的问题复杂化。
三、在人员分配时,程序员之间的知识差距会使整个团队的开发效率受到影响,当差距过大时,可能会导致不必要的人力资源浪费。
以上就是我对结对编程的理解。