什么是结对编程?
结对编程技术是指是两位程序员并肩坐在同一台电脑前,共同探讨设计方案、共同设计算法、共同编写程序代码、共同完成各种测试。通常做法是:要求两个开发人员共用一台计算机共同完成程序代码的编写,其中一个人负责具体的细节,而另外一个人关注整体。具体来说就是一个人负责控制键盘, 我们通常称为“驾驶员”,另一个人负责其它工作,包括随时观察“驾驶员”的工作情况,发现并告诉其操作性和策略性的失误,我们通常把他称为“导航员”,并且两个人的角色可以随时交换。这样一来代码就汇集了两个人的智慧,代码质量显然有所提高。通过结对编程,两个开发人员在一可以取长补短,互相学习,共同提高。
结对编程的两种形式
在采用结对编程实践时,不同的团队形式各异。有的是分工明确型,一个人负责编写代码,另外一个人审查代码,负责代码的正确性和可读性;还有一个人负责详细设计,一个人负责代码实现;或者一个写功能代码,一个人写测试用例。有的是共同合作型,两个人共同讨论关于所开发功能的架构设计、编码实现、测试方法、代码风格等,然后轮流做输入和观察的工作。
“老带新”不属于结对编程
在国内还有一种大家结对的方式是“老带新”,一个老员工带一个新人,这种其实不是严格意义上的结对编程,算是新人培养的一种形式。这样结对,就会出现一言堂的现象,失去了结对本身的意义。
结对编程技术的特点?
- 结对编程的实践是简单的,同时是一种有效的编写和审视代码的方法。两人同时熟知代码,并且将错误漏洞出现在代码中的可能性大大减少。
- 结对更有勇气。一个人不敢尝试的东西他的伙伴将有勇气去尝试并扼杀原有的评估。
- 结对能鼓励团队。由于代码不是一个人独立完成的,而将是属于整个团队所有。
- 结对促使知识的传播。由于在开发的过程中不断的交换伙伴,而使每个成员熟知系统的每个一个模块。
- 结对能提高生产力。一个人在开发的过程中将会出现一段疲劳、消极的时期。如果双人编程,则可以相互促进,当一方疲劳时,他们可以交换角色,这样,他们将能保持工作强度(比一个人工作强)。
- 结对是一件有趣的事。 和他人一起工作是一件有意义、非常刺激而且简单的游戏。它将会提高工作满意度和提高士气。
阅读资料:结对编程(Pair Programming)的方法有什么优点? - 知乎结对编程技术 - MBA智库百科