结对编程的误区
openkk 13年前
<p> 在过去的几年里,我有过许多结对编程的经历。有时在我的团队里进行,有时在客户那里,有时在 coding dojo (一种编程模式,几个程序员一起合作完成一个任务),有时在我的开源项目里。</p> <p> 对于那些知道如何结对编程的程序员来说,这种模式很棒,很高效。</p> <p> 但是你不能指望在两个程序员面前摆台电脑,就指望他们一开始就做得很棒。结对编程需要学习,程序员需要知道实施者(敲键盘的人)和领航员之间的区别。下面来看看些细节。</p> <p> 在结对编程中,我遇到了一些误区,列在下面。</p> <p> <strong>一、领航员误区</strong></p> <p> <strong>1. 发号施令者</strong></p> <p> 喜欢发号施令的人总是对敲键盘的人说:“到末行,加个反括号,然后…”。他不去关注解决方法和下一步该怎么做,而过度关注一些编程细节。</p> <p> 事实上,他希望他自己来掌控键盘。所以当你碰到一个喜欢发号施令的人,那么将键盘交给他吧,转换领航员的角色。</p> <p> <strong>2. 拼写纠错者</strong></p> <p> 拼写纠错者坐在你旁边,纠正你输入的每个错误字符。当然,他没有时间来真正的进行导航。</p> <p> 和纠错者商量一下,当他给你纠错的时候让他请你喝一杯咖啡(或者任何你想要的东西)。</p> <p> <strong>3. 吹毛求疵者</strong></p> <p> 吹毛求疵者会指责你写的每行代码。当他的意见正确时,他会一意孤行,不用你已经写好的代码,而完全照着他的想法。</p> <p> 就如自由爵士音乐人都是复用其他乐队成员的音符,来构造成一首曲子一样,好的结对编程也应基于现有的基础上进行推进。</p> <p> 试着转换角色,也许吹毛求疵者就会变成一个目中无人的人。</p> <p> <strong>4. 默不作声者</strong></p> <p> 默不作声者是那些几乎不发表意见的人。他仅仅坐在那里看着你工作。</p> <p> 试着问下他对你的方法有什么意见,或者问他下一步该写什么测试代码。</p> <p> <strong>5. 心不在焉者</strong></p> <p> 心不在焉的人企图让你分心,而不是提供给你有建设性的意见,帮你解决问题。</p> <p> 那么让他离开吧,比起一个让自己分心的人而言,不如一个人编程。</p> <p style="text-align:center;"><a target="_blank"><img title="结对编程的误区" alt="结对编程的误区" src="https://simg.open-open.com/show/e715da4233b5d9db21476dbd6428a8a1.jpg" width="499" height="320" /></a></p> <p> <strong>二、实施者误区</strong></p> <p> <strong>1. 深藏不露者</strong></p> <p> 深藏不露者仅仅自己敲着代码而不告诉别人他在做什么。领航员不得不靠自己去弄懂代码。关于该用什么方法,该选择哪种设计,领航员和实施者之间完全没有交流。</p> <p> 领航员需要问问深藏不露者关于他的计划或想法。</p> <p> <strong>2. 目中无人的人</strong></p> <p> 目中无人的人通常忽略领航员的所有建议,大多数是因为他们觉得自己的想法或编程技能更胜一筹。</p> <p> 当碰到一个目中无人的人时,立即停止结对编程吧,开始下一个任务吧。自大的人往往也不会是个好的领航员。他们很可能变成发号施令者或是吹毛求疵者。</p> <p> <strong>3. 不知所措的人</strong></p> <p> 不知所措的的人往往不习惯结对编程,非常紧张,不能掌控全局。</p> <p> 确保自己的领航员角色做到最好。小心的提出意见,对于不知所措的人主要给予鼓励。</p> <p> 但是,大多数程序员开始都是这种情况。所以,不要对他们的结对编程期望太高。让他们首先成为一个领航员,或者让能够很好的处理人际交往问题的领航员在他们旁边。</p> <p> <strong>4. 跳跃性很大的人</strong></p> <p> 跳跃很大的人喜欢在代码中进行大范围的跳跃,这样领航员不知道进行到哪里了。</p> <p> 领航员需要让他慢下来,问他关于他的计划,并确保自己比他知道更多的快捷键。</p> <p> <strong>5. 不熟悉工具的人</strong></p> <p> 不熟悉工具的人不知道开发环境的快捷键,效率非常低。</p> <p> 交换角色吧,让他看看你的技巧。或者打印一张印有快捷键的 cheat sheet。</p> <p> 我相信还有其他的误区,如果你有什么想法请写在评论留言吧。</p> <p> 原文: <a href="/misc/goto?guid=4958331113938391178" rel="nofollow" target="_blank">planetgeek.ch</a> 编译:<a href="/misc/goto?guid=4958185140659301754">伯乐</a>在线 – <a href="/misc/goto?guid=4958331115484612959" target="_blank">唐小娟</a></p>