结对编程的9个步骤(翻译)
来源:广州中睿信息技术有限公司
发布时间:2012/10/21 23:25:16 编辑:itlead 阅读 2032

  一、概述:

  “结对编程”就是两个人用一个键盘进行编程。其中一个人,角色是”司机”,负责敲键盘。另一个人,角色是“观察者”(或“领航员”),负责回顾打出的每一行代码,检查错误和考虑整体设计。并且这两个角色可以互换。

 

  “结对编程”的好处:更好的代码(简单的设计,更少的错误,更可维护的),更高的士气(更有趣!),有利于知识在团队内共享(包括代码库和通用编程知识),更好地管理时间,提高生产效率。

 

  二、步骤:

  1)两人在开发之前必须对要开发的功能有一致的共识

  2)开始编码之前必须先有一个清晰合理的任务,这项任务应该是你确信能在一两个小时内完成的。例如,“在moving-van数据库中增加维护历史”。

  3)确定解决方案:在开始编码之前先确定解决方案,有助于更好地计划时间。

  4)先分解出一个优先级最高的小任务,通常这种任务可以在几分钟内完成。“导航者”负责引领“司机”怎样开始。

  5)依靠你的伴侣,支持你的伴侣:

 

  当你是“司机”:

  要尽可能快地完成当前的微小的目标,忽略宏观的问题。你要相信“领航者”能确保没有走错路。

 

  当你是“领航者”:

  阅读“司机”正在写的代码,你的工作是做代码回顾,你应该花费所有精力在这个上面。考虑可能的错误,是否有更大的问题,以及如何简化或改进设计。及时发现并指出错误。等到小的任务完成后再去考虑大的问题和如何改进设计。

 

  不要指导如何写代码。“司机”应该积极思考如何实现当前的任务,而不只是被动地打字。

 

  你应该遵守这个原则,就是你不需要关注微小的细节;你需要保持你的思维在一个更高的层次。你应该说:“那看起来正确。但如何处理这个问题,我们可以通过空指针吗?”而不应该说:“好了,现在输入‘if(s = = NULL){return……’”

 

  6)两人应该频繁沟通!说出自己在做什么,需要对方提供一个实现思路,需要对方提供一个更好的方法来解决当前这个问题,指出一些没有完全覆盖代码的输入,建议更清晰的变量和子程序命名,建议使用较小的步骤去实现代码,告诉“司机”一些他们此时需要的API的知识等。他们平时可能会这样沟通:

  “你认为这是一个有效的测试?”

  “这样看起来正确吗? "

  “下一个是什么?”

  “相信我”(当它很容易写一段简短的代码的时候)

 

  7)同步频繁。当你正在一起工作,你会发现自己越来越不同步:做什么你的伴侣在你不确定的事,或变得不清楚当前任务。这是正常的。当这一切发生的时候,同步起来。良好的配对的关键是同步起来很frequently-within秒或一分钟的注意到你合不来了。如果你花五分钟的时间(或更多)从同步,您可能会以及编码独奏,因为它是re-sync 'ing频繁创造的协同组合。

 

  当你能说,你在做什么之前,你需要你做了。还好,向你的搭档,例如,“我们要写的测试案例呢?空“有时,你必须写代码,以了解你的想法,那就是好的。然后你就能说你那样做是:“我需要打印这,看它是否是个好主意。“最好能保持这样的探索,不到一分钟。

  当你的伴侣询问,如果你同意的事情,像“我们要写的测试案例呢?空”或者“我认为该方法可以被删除了。你同意吗?”,说“是”或“否”清晰并立即。

  这是可以通过键盘来回很经常。例如,有时它很容易说的事情在代码打字比试图解释出来。所以让观察者抓住键盘和类型。然后你可以切换回来,或者让观察者将车开,无论哪个更划算,它就是此刻。

 

  8)花一点时间去庆祝你完成任务和克服的问题。例如,每一次你得到一个测试通过,给对方一个小击掌。如果你每次你击掌欢呼得到一个新的测试失败,你会真正进入槽协同编程和测试驱动的设计。

 

  9)交换角色often-at至少每半个小时。这使你们都很忙碌,你们双方的做法与低层次的细节和大局。同样,你可以驾驶full-blast轮胎,很难保持警惕的旁观者的角色需要超过半小时。交换角色你排出区外。

 

本站技术原创栏目文章均为中睿原创或编译,转载请注明:文章来自中睿,本站保留追究责任的权利。