什么是配对编程?

4

这个术语似乎在英语社区中很常用。我很好奇这是什么?它是两个学生在一台电脑上共同编码吗?这个组织(无论它是什么)只在美国使用吗?

5个回答

12

双人编程是极限编程(XP)中的主要实践之一。它字面上意味着两个人在一台电脑上工作,通常一个人使用键盘(通常称为“驱动程序”),而另一个人则是合作伙伴(称为“乘客”或“副手”)。据说它可以提高生产力和生成代码的质量,同时也可以强制执行代码的团队所有权 - 这是XP的另一个原则。


非常有趣,谢谢。不确定如果一个人在编码时,另一个人正在睡觉是否会提高质量。 - User
实际上,研究表明确实如此。考虑这一点。在配对编程会话中,驾驶员和乘客根据需要不断交换角色。所以更像是两个朋友都想开车,但不开车的朋友很高兴纠正他的司机朋友。 - daanish.rumani
作为一名经验丰富的配对编程员,我强烈推荐使用两个键盘和两个鼠标——这使得配对编程比你必须来回滑动键盘更加流畅。 - Don McCaughey
1
优秀的配对程序员在工作时保持持续的对话,分享知识、想法和观点。如果一方成员整个时间都在睡觉,那么你就做错了。 - Don McCaughey

6

http://en.wikipedia.org/wiki/Pair_programming

Pair programming是一种软件开发技术,两个程序员在同一个键盘上共同工作。一个输入代码,另一个审查每行代码的输入。输入代码的人被称为驱动者,审查代码的人被称为观察者1或导航者。两个程序员经常交换角色(可能每30分钟交换一次)。在审查过程中,观察者还考虑工作的战略方向,提出改进和可能的未来问题解决方案的想法。这使驱动者可以专注于完成当前任务的“战术”方面,使用观察者作为安全网和指南。

据我理解,结对编程在员工流动率较高的公司中还提供了另一个优势:如果一名程序员离开,仍然有另一位了解代码。这是程序员层面上的内置冗余 :-) - Adrian Grigore
所以基本上你让自己变得多余了... :-| - James Camfield
知识共享是一种相当普遍的做法。您不希望大公司完全依赖于一个开发人员。 - mmcdole

5

如果有疑问,可以参考维基百科:代码配对。通常情况下,一个人编写代码,而另一个人则扫描错误和代码的逻辑性。


我有一些经验,只有亲身实践才能让你思考,否则你的大脑就会处于休眠状态。至少对我来说是这样。 - User
把它想象成一次实时代码审查,不断地思考如何让代码更好。 - Chas. Owens

1

配对编程是指两个开发人员共同在同一张故事卡上工作,共享一台电脑和键盘。这被认为是一种极限编程实践。极限编程将某些积极的做法(例如代码审查)推向了极致。除了持续的代码审查之外,其好处如下:

  • 提高质量:两个活跃的程序员协同完成一个story任务卡片,缺陷会更少。
  • 提高生产力:配对工作的人在解决问题时不太可能被拖慢甚至完全被阻塞。此外,当你和伙伴一起工作时,很难放假或浏览网页……你不想让伙伴失望。与伙伴一起工作,设计会更清晰,代码行数会更少。
  • 消除知识孤岛:轮流配对,您将学习整个团队的应用和领域业务知识。团队不太可能被阻塞,因为苏去度假了而没有其他人了解她的代码。
  • 知识转移:轮流配对可以相互教授新的技能(工程和领域),整个团队的水平都会提高,知识也会在团队中传播。
  • 团队自我选择:团队了解彼此的技能,并会快速淘汰表现不佳的人。

1

测试驱动开发的实践者中,有一种扩展自配对编程的方法叫做乒乓配对

乒乓配对的工作方式如下:

  • 编写一个失败的测试(开发人员A)
  • 实现使测试通过的代码,然后(可选)重构(开发人员B)
  • 编写一个失败的测试(开发人员B)
  • 实现使测试通过的代码,然后(可选)重构(开发人员A)
  • 以此类推...

乒乓配对的好处之一是,任何一位开发人员都很难休息太久 ;-)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接