㈠ 解释XP中的结对编程有哪些好处弊端在哪里

结对编程技术是一个非常简单和直观的概念,能达到事半功倍的工作效果。但是,人与人专之间的合作不属是一件简单的事情——尤其当人们都早已习惯了独自工作的时候。实施结对编程技术将给软件项目的开发工作带来好处,只是这些好处必须经过缜密的思考和计划才能真正体现出来。而另一方面,两个有经验的人可能会发现配对编程里没有什么技能的转移,但是让他们在不同的抽象层次解决同一个问题会让他们更快地找到解决方案,而且错误更少。

㈡ 什么是结对编程

结对编程(英语:Pair programming)是一种敏捷软件开发的方法,两个程序员在一个版计算机上共同工权作。一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员)。两个程序员经常互换角色。
在结对编程中,观察员同时考虑工作的战略性方向,提出改进的意见,或将来可能出现的问题以便处理。这样使得驾驶者可以集中全部注意力在完成当前任务的“战术”方面。观察员当作安全网和指南。结对编程对开发程序有很多好处。比如增加纪律性,写出更好的代码等。
结对编程是极端编程的组成部分。

㈢ 结对编程的优势

其实结对编程做起来很简单也很有趣,找个水平差的不太远的程序员和自己配成一对。只用一台计算机,大家选一个人坐在键盘前面负责输入,另一个人坐在后面口述。两个人要不断的交流,频率不应低于一分钟一次。整个的设计思想由后面只动口不动手的人主导,而由操键盘的人做实现。由于人的思维速度是快于输入代码的速度的。那么观看的人可以有空闲的时间做额外的思考,观察代码写的有没有问题,结构有没有问题。
如果程序员的经验积累足够,是很容易看出存在潜在问题的代码的,即表面上实现了功能,但实际上是一种糟糕的做法。这在XP(eXtreme Programming 极限编程)中被称为代码坏味道,在 Martin Fowler的《重构》一书中有详细的介绍。两个有经验的程序员同时在一起工作,看起来好像浪费了一个人的时间:但实际上的效果确实完成了更高质量的代码。程序编的不那么容易出BUG,而且代码也写得更为优雅和紧凑.
关于结对编程,发现了一些新的受益之处。首先,它可以促进参与项目的程序员自身的提高,一对程序员工作的时候,水平较低的一方会潜移默化地受水平略高的程序员影响,学到一些新的东西。而水平高的一方同样因为不断地把自己的想法说出来而整理了自己的思路。
其次,一定时间周期地打乱配对,让参与项目的人员相互转换位置,使得维护繁杂的文档变得不那么重要。大家分组打乱后,口头的交流很容易让所有人都熟悉每个模块,这样对于公司也很有好处,项目中万一有人离开,也不至于影响到整个项目。最后,开发过程变得更为有趣,任何人的交流变得很多,大家关系更为融洽。
另外想补充一点的是,讲解XP的书籍上都没有提到,但是实际上却存在的一点:结对编程使得程序员被迫提高了工作效率。如果单独工作,在遇到困难的时候,并不是所有人都立刻积极地去解决问题,这时或许会上网和网友聊聊天,看看无关的网站等等。有可能因为工作的打断,大半天的时间都浪费了。看起来,程序员每天都在加班,实际有效工作时间往往还达不到6个小时。而结对编程有一种相互督促的作用,在一边工作疲惫状态不好使,另一边会起一个鼓励和激发斗志的作用。
而且两个人共用一台电脑,略带私人性质的聊天活动都会很自觉地不去进行了。结果一天下来,新实验结对编程的程序员都会喊累,神经紧绷8个小时的工作不累才怪。
从这个角度看,严格限制结对编程的程序员不准加班是合理的,实际上,开始每天甚至不必限制8小时工作,每天这样工作6小时队项目同样是非常高效的。
当两个人不断的互换角色,以至于最后谁也记不清哪行代码是谁敲的;团队内循环的分组以至于分不清到底那个模块该谁负责;反而大家的感觉会不错。整个项目的代码是团队共有,而不再是个人作品了。

㈣ 有采用过tdd 或者结对编程的模式进行过开发么

敏捷开发是一种轻量级的软件开发方法学,它有多种不同的形式,如XP、内Scrum、Crystal Methods、FDD等,它的基本特征是容迭代的、增量式的开发;强调自主性和积极主动的团队精神;强调效率、质量和沟通。
相同点:SCRUM和XP都是敏捷开发的方法论,都体现了快速反馈,强调交流,强调人的主观能动性等基本原则,而且多数“最佳实践活动”都互相适用。

㈤ 国内为何很少有人做结对编程呢是确实不好还是属于中国特色

结对的代码质量应该高于单干,单干的效率可能高于结对。对于一个没有敏捷基因,看重效率大于质量的团队来说,结对的投入产出比太低,采用传统方式也就理所当然。

㈥ 结对编程中两位程序员分别充当什么角色

执行者和观察者。

如果你是执行者,当以最快的速度完成了某个程序时,往往会忽版略一些问题,在这个时候,搭权档就是保障。

如果你是观察者,仔细审查对方的代码,考虑可能的错误,以及如何简化和改进设计。在无法读取的时候找出bug,但是不要即时就要求删改,而是等到对方专注编程之后,进行到一个程度再整体调控会有效。例如,如果你看到现在的代码没有考虑空输入,在一张纸上写下,“添加单元测试的零输入。”
观察者和执行者都是灵活互动的,而不是机械一成不变的完成任务即可。观察者并不需要去研究小细节,但是要考虑更高的层次。例如“看起来不错,但是如何处理遇到空指针的情况?”听起来就比“好了,现在输入'如果(S == NULL){返回..}””好很多。

㈦ 结对编程的时候:如何实现在线的远程代码审查和版本控制两者如何才能相互结合在一起

其实使用版本控制工具git,就可以方便地实现了。
git还支持远程访问版本库。

这样代码撰写者与审核者,可以通过版本库来交流了。

git还支持被部署到windows和Linux上。

㈧ 国内为何很少有人做结对编程呢是确实不好还是属于中国特色

嗯,也许你是对的。

㈨ 结对是什么意思

在不同场合下有不同意思,最基本的是结成一对的意思,其他的比如:
结对助学
要求单位选出几名学习优秀分子采取"一带一"或"一带二"的形式,结对助学.
结对编程
简介结对编程技术是一个非常简单和直观的概念:两位程序员肩并肩地坐在同一台电脑前合作完成同一个设计。同一个算法、同一段代码或同一组测试、与两位程序员各自独立工作相比.结对编程往往只需花费大约一半的时间就能编写出质量更高的代码, 但是,人与人之间的合作不是一件简单的事情——尤其当人们都早已习惯了独自工作的时候、实施结对编程技术将给软件项目的开发工作带来好...
结对资助
结对资助是指捐赠者通过希望工程办公室的安排与受助学生建立直接联系,或形成一对一的资助关系。该种捐款方式可以通过书信直接联系,可以让贫困生在捐赠者的关怀下健康成长,同时可以有效保证希望工程的透明度。结对资助的方式已经成为社会上人们最乐意采取的奉献爱心的方式。结对资助-捐款批次1、一次性捐款结对资助:即捐赠者将受助学生所需学费,一次性捐赠给希望工程工作机...
结对帮扶
概述结对帮扶是一项扶贫政策,即党员干部一对一结对子,帮扶城乡困难家庭的活动。为贯彻落实党的十七大和十七届三中全会精神,加快推进以改善民生为重点的社会建设,让城乡困难群众共享改革开放成果,我国普遍深入开展结对帮扶活动。 具体来说,结对帮扶是以先进带动后进,优势带领劣势的一种优势群体帮助扶持相对弱势群体的形式和手段。可以是一对一,也可以...
双结对
背景“双结对”活动是区委贯彻落实市委“高兴、放心、凝聚、覆盖”主题活动要求,切实开展先进性教育活动的重要载体和抓手。龙柏街道在推进“双结对”活动中,一方面认真做好上级要求的规定动作,街道机关党支部与龙柏三村第一居民区党支部结对,与龙柏三村困难同学、困难党员结对;居民区26个党支部与区委办局20家单位26个党支部结成对子。另一方面积极做好街道自选动作,...