




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Pair Coding Author xxxx2014/10/14Comment历史v 极限编程(ExtremeProgramming,简称XP)n是由KentBeck在1996年提出的。KentBeck在九十年代初期与WardCunningham共事时,就一直共同探索着新的软件开发方法,希望能使软件开发更加简单而有效。Kent仔细地观察和分析了各种简化软件开发的前提条件、可能性以及面临的困难。1996年三月,Kent终于在为DaimlerChrysler所做的一个项目中引入了新的软件开发观念XP。v 结对编程(Pair programming)n技术是指两位程序员肩并肩地坐在同一台电脑前合作
2、完成同一个设计、同一个算法、同一段代码或同一组测试。与两位程序员各自独立工作相比,结对编程往往只需花费大约一半的时间就能编写出质量更高的代码。极限编程-实践RefactoringSimple DesignPair ProgrammingTest-drivenDevelopment CollectiveOwnershipCoding StandardContinuousIntegrationMetaphorSustainablePaceWholeTeamCustomerTestsPlanningGameSmallReleasesXP Practices结对编程-概念v 结对编程(Pair pro
3、gramming)n是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员)。两个程序员经常互换角色。n在结对编程中,观察员同时考虑工作的战略性方向,提出改进的意见,或将来可能出现的问题以便处理。这样使得驾驶者可以集中全部注意力在完成当前任务的“战术”方面。观察员当作安全网和指南。n结对编程对开发程序有很多好处,比如增加纪律性,写出更好的代码等。XP实践-结对编程优点缺点缺点p对于有不同习惯的编程人员,可以在起工作会产生麻烦,甚至矛盾。p有时候,程序员们会对一个问题各执己见(代码风格
4、可能会是引发技术人员口水战的地方),争吵不休,反而产生重大内耗。p两个人在一起工作可能会出现工作精力不能集中的情况。程序员可能会交谈一些与工作无关的事情,反而分散注意力,导致效率比单人更为低下。p结对编程可能让程序员们相互学习得更快。有些时候,学习对方的长外,可能会和程序员们在起滋生不良气氛一样快。比如,合伙应付工作,敷衍项目。】p面对新手,有经验的老手可能会觉得非常的烦躁。不合适的沟通会导致团队的不和谐。p新手在面对有经验的老手时会显得非常的紧张和不安,甚至出现害怕焦虑的的精神状态,从而总是出现低级错误,而老手站在他们后面不停地指责他们导致他们更加紧张,出现恶性循环。最终导致项目进展效率低下
5、,并且团队貌合神离。p有经验的人更喜欢单兵作战,找个人来站在他背后看着他可能会让他感到非常的不爽,最终导致编程时受到情绪影响,反而出现反作用。结对编程-成本和收益v一些研究发现程序员结对工作与单独工作相比,会写出更短的程序,更好的设计,以及更少的缺陷。研究发现缺陷率降低15%到50%,会由于程序员的经验以及任务的复杂度而不同。结对编程比单独编程相比,通常会考虑更多的设计选项,达成更简单,更易维护的设计;程序员们也会更早地捕捉到设计的缺陷。结对编程与一个程序员承担同一个任务相比工作会完成的更快。结对的程序员经常发现当他们一同工作时表面上“不可能”的问题变得容易,或更加快速,或至少有可能解决。v然
6、而,一个2007年的元分析得出结论“结对编程并非一致地有利或有效的”,这是因为是否结对编程选择以外的许多因素在编程任务的产出上起着很大的最用。元研究发现结对编程往往一定程度地缩短了开发时间,而且对代码质量产生了正的边际效益,但是结对编程大大增加了开发人员的工时;也就是说与单独编程相比花费大大增加了。作者指出有关结对编程的研究遭遇了发表偏倚,有些不利于结对编程的研究要么没有开展研究,要么没有投稿,要么没有被授受发表。他们得出结论“你不可能期待又快又好又便宜。”结对编程-成本和收益v虽然编码通常比一个程序员单独工作更快地完成,但是总的程序时间(程序员数目 花费的时间)增加了。管理者需要在工作更快的
7、完成以及缩减测试和调试时间和更高的编码成本之间平衡。这些因素的相对权重在不同的项目、不同的任务之间也不同。对于那些程序员没有完全理解的任务上,程序员期待更多的创造性,挑战,以及 高复杂度,此时使用结对编程最有帮助。在简单的,程序员都完全了解的任务上,结对编程导致生产力的净下降。v在两个程序员工作时,两个程序员之间传递着知识。他们分享关于系统细节的知识,并且互相学习编程技巧。新的员工很快地获得团队的习惯,并学习到系统的细节。“混杂结对编程”,即每个程序员轮流与团队中的所有其他程序员结对编程,而不是仅与某个程序员编程,使得系统的知识在整个团队中传播,减少了程序员离开团队带来的风险。v结对编程通常会带来纪律和时间管理的提升。程序员在与结对的伙伴一同工作时,较少地可能忽略编写单元测试,花时间上网或处理个人电子邮件, 或偷工减料。结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公路工程的行业未来趋势试题及答案
- 行政组织的定性与定量研究试题及答案
- 基于ARM架构的嵌入式设计试题及答案
- 深度学习公路工程试题及答案
- 发动机控制系统的应用与调整考核试卷
- 行政决策方式的多样性试题及答案
- 箱包行业渠道建设与经销商管理考核试卷
- 学习2025年计算机二级MySQL的快捷方式试题及答案
- 数据库故障与恢复流程试题及答案
- 基于RESTFUL的嵌入式解决方案试题及答案
- 《断魂枪》老舍课件
- 胖东来考察报告
- 心内科工作流程
- 中考数学总复习第四章第20课时解直角三角形课件
- 低空经济产业园商业计划书
- 2025中国铁路济南局集团招聘生60人高频重点提升(共500题)附带答案详解
- 2024-2030年中国内河码头产业前景预测规划研究报告
- 薪酬激励实施方案
- 2025年上海市各区高三语文一模试题汇编之文言文二阅读(含答案)
- 大学英语四级写作课件
- 【读后续写】高中英语读后续写讲评:100 dollars 名师课件-周媚
评论
0/150
提交评论