这个词似乎在英语社区中被广泛使用。我很好奇它是什么?是像两个学生在一台 PC 上一起编写代码还是什么?这个组织(不管它是什么)是否只在美国使用?
5 回答
结对编程是极限编程(XP)的主要实践之一。它确实意味着两个人在一台计算机上工作,通常一个在键盘上(通常称为驱动程序)和一个伙伴(称为乘客或霰弹枪)。它以提高生产力和生成代码的质量以及强制执行代码的组所有权而闻名 - XP 的另一个宗旨。
http://en.wikipedia.org/wiki/Pair_programming
结对编程是一种软件开发技术,其中两个程序员在一个键盘上一起工作。一个键入代码,另一个在键入时检查每一行代码。键入的人称为驱动程序。审查代码的人称为观察员1或导航员。两位程序员经常更换角色(可能每 30 分钟一次)。
在审查时,观察员还考虑工作的战略方向,提出改进的想法和未来可能解决的问题。这使驾驶员可以将所有注意力集中在完成当前任务的“战术”方面,使用观察者作为安全网和指南。
如有疑问,请咨询 Wikipedia: Pair Programming。一般的想法是让一个人编写代码,而另一个人扫描错误和凝聚力。
测试驱动开发的从业者有时使用的结对编程的扩展是Ping Pong Pairing。
乒乓配对的工作原理如下:
- 编写一个失败的测试(开发人员 A)
- 实现使测试通过的代码,然后(可选)重构(开发人员 B)
- 编写一个失败的测试(开发人员 B)
- 实现使测试通过的代码,然后(可选)重构(开发人员 A)
- 等等...
Ping Pong Pairing 的好处之一是任何开发人员都很难睡很长时间;-)
配对编程是指两个开发人员在同一个故事卡上共享一台计算机和键盘。它被认为是一种极端的编程实践。极限编程需要一些积极的东西,在这种情况下是代码审查,并将其发挥到极致。持续代码审查之外的好处如下:
- 提高质量:一对活跃的程序员在同一张故事卡上工作,完成卡时缺陷更少
- 提高生产力:在解决问题时,如果没有完全阻塞,则一对不太可能放慢速度。此外,当您与合作伙伴一起工作时,更难通过电子邮件或网络度假……您不想让合作伙伴失望。成对工作时,您将通过更简洁的设计和更少的代码行来解决问题
- 消除知识孤岛:通过轮换对,您将在整个团队中学习应用程序和领域业务知识。该团队不太可能被阻止,因为 Sue 在度假时没有其他人知道她的代码。
- 知识转移:当他们一起工作时,轮换的人会互相传授新的技能(工程和领域)。每个人的团队水平都会提高,知识会通过团队传播。
- 团队自我选择:团队学习一个花药的技能,并迅速淘汰表现不佳的人。