1.10.2 结对编程(www.cppentry.com)
结对编程(www.cppentry.com)(pair programming)反对深植于我们心中的个人主义,我们从小就通过学校(在那里,成功与失败全在自己,与邻座一起工作这样的事情会被认为是“欺骗”)和媒体(特别是好莱坞电影,其中的英雄总是在与盲目服从作斗争)在灌输这种思想。程序员也被认为是个人主义的典范,正如Larry Constantine喜欢说的“牛仔编码者”。而XP,这一打破传统的方法学,主张代码应当在每个工作站上由两个人编写。而且这应当在有一堆工作站的工作场合中进行,拆掉人们喜欢的隔板。实际上,Beck说,转向XP的第一个任务是用螺丝刀和螺钉完成的,拆除挡道的一切东西(这需要经理能说服后勤部门)。
结对编程(www.cppentry.com)的好处是,一个人编写代码时另一个人在思考。思考者的头脑中保持总体概念,不仅是手头问题的这一段,而且还有XP指导方针。例如,如果两个人都在工作,就不太可能会有其中的一个说“我不想首先写测试”而愤然离去。如果编码者遇到障碍,他们就交换位置。如果两个人都遇到障碍,他们的讨论可能被在这个区域工作的其他人听到,可能给出帮助。这种结对方式,使事情顺畅、有章可循。也许更重要的是,它能使程序设计更具有社交性和娱乐性。
我在一些讲习班的练习期间用过结对编程(www.cppentry.com),似乎明显地改进了每个人的练习过程。