结对编程是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员)). 两个程序员经常互换角色。

在结对编程中,观察员同时考虑工作的战略性方向,提出改进的意见,或将来可能出现的问题以便处理。 这样使得驾驶者可以集中全部注意力在完成当前任务的“战术”方面。观察员当作安全网和指南。结对编程对开发程序有很多好处。比如增加纪律性,写出更好的代码等。

结对编程是极端编程的组成部分。

笔者有几个月的结对编程经历。感受颇深。

  • 结对编程缺点就是2个人做同一件事情,被不明真相的项目经理指责浪费资源。但是相对于它的优点来说这些缺点简直可以忽略。
  • 首先就是代码错误率低,我和搭档都百分百的专注在coding中,相对一个人编程时,可能会有开小差的情况,但是结对编程不会。
  • 通过讨论能更加了解需求,随时面对面的讨论需求和设计,效率很高,搭档可以随时提出设计上的问题,避免走弯路。
  • 编码时候,两人的关注点不一样,相对于一个人编程,能考虑到更多的错误产生或者设计缺陷。
  • 两人同时对一个模块了解很深刻,因此可替代性强,当某人不在的时候,另一个人也可以对整个模块负责。
  • 互相学习一些编程技巧。