浅谈结对编程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈结对编程相关的知识,希望对你有一定的参考价值。
Pair Programming, 即结对编程,是一种敏捷软件开发的方法,极限编程的组成部分。结对编程技术是指两位程序员肩并肩地坐在同一台电脑前合作完成同一个设计、同一个算法、同一段代码或同一组测试。一人充当“执行”角色,只负责编程。另外则负责“观察者”(或“导航”),检测bug和把控整体设计。与两位程序员各自独立工作相比,结对编程往往只需花费大约一半的时间就能编写出质量更高的代码。
结对编程是构建软件系统的一种有效方法。采用结对编程,带来的显著效益:
一、结对编程可以最大化的提高工作效率。
软件开发并不只是程序员堆砌代码的过程,它更多的是一个创新的过程,是一个发现问题、分析问题、解决问题的过程。一个人编程时,往往有了一丝零碎的想法就开始编写代码。写完代码之后,忽然发现这个方案行不通,只好废弃这些代码,重新开始新的想法。当一个人在遇到疑难问题时,很容易走入“死角”。而结对编程则不同,一个人有了想法,首先要表达出来,让自己的同伴理解,经过深刻的讨论,一致认可之后才开始编写代码。一个人编写代码,另一个则在旁边思考,会为下一步的工作提出建设性的意见。发现了问题可以及时的指正。大大的提高了代码质量。
一个人一天有效工作时间不超过3-4个小时。两个人一起结对编程。一个人编写代码,另一个人则从设计的角度思考下一步的工作,有了想法之后,互相讨论,再互换角色。在开发过程中,设计思考和编码实现不停的进行交换,保持了良好的开发节奏。同时可以互相督促,使彼此更加认真的工作。遇到问题和压力时,可以一起面对,互相鼓励。可以一起分享解决问题的成就和乐趣。
二、结对编程是知识传播的最好途径。
很多软件公司都建立有自己的知识库,有的还建立自己的培训部门,甚至高薪聘请一些专家做技术培训。但发现效果并不理想。培训之后,开发人员面临实际的项目,还是一片茫然。而与有经验的同事一起结对编程则是在实际项目中学习,具有非常强的针对性。你学到的不仅是一些技术和技巧,更多是他们思考问题方式、解决问题的方法。和各种不同经验的同事一起结对编程,你的经验和能力可以得到快速的提高。
三、结对编程可以打造出最佳的合作团队。
团队是有组织有计划的,合理有效地利用各种资源,进行最佳的组合。结对编程并不是一对固定的伙伴,我们鼓励在团队中经常交换结对编程伙伴。这时我们发现,项目不再是一个人的事情,也不是两个人的事情,而是整个团队的事情。
通过结对编程,大家可以在最短的时间内完成磨合。结对编程很好的促进了团队的沟通交流,经常一起合作结对编程的伙伴,彼此了解、熟悉,很多都是工作和生活上的好友。在这样的团队里,大家很乐意互相协助,一起分享知识,分享快乐。
四、除此之外结对编程可以带来更多的提高。
- 更好的想法——持续不断的头脑风暴、更大的知识库、在理解上有更少的差异、有更多的脑力解决设计问题;
- 更好的质量——更少的漏洞、想法的即时认证、始终如一的方法并更加遵守团队会议中的要求;
- 更全面的认识——经验共享与知识共享、对于为什么做、怎么做和做什么有更深入的理解;
- 更高的生产率——更好地集中精力及更高的工作强度、彼此促进并激励来达到最好的结果、更少的拖延和时间浪费;
- 更多乐趣——大多数人喜欢分小组工作并且共同解决有趣的问题。
但是,人与人之间的合作不是一件简单的事情——尤其当人们都早已习惯了独自工作的时候。实施结对编程技术将给软件项目的开发工作带来好处,只是这些好处必须经过缜密的思考和计划才能真正体现出来。
以上是关于浅谈结对编程的主要内容,如果未能解决你的问题,请参考以下文章