结对编程初识

结对编程初识按照敏捷开发的要求 我们测试小组开始了第二个 story 我领到了结对编程和跟着江霄一起完成关于 Net 下对具体的项目代码写出测试 Demo 的 task nbsp nbsp 在结对编程的 task 中 主要又分为了概念性认识和具体推行两个子任务 这次主要还是单元测试理论性的一些基本认识吧 nbsp 定义 nbsp nbsp 结对编程就是两位程序员坐在同一工作台前开发软件 也就是说 两位程序员来完同一个设计 一个作为领航者在后边

    按照敏捷开发的要求,我们测试小组开始了第二个story。我领到了结对编程和跟着江霄一起完成关于.Net下对具体的项目代码写出测试Demo的task。

    在结对编程的task中,主要又分为了概念性认识和具体推行两个子任务。这次主要还是单元测试理论性的一些基本认识吧。

 定义:

    结对编程就是两位程序员坐在同一工作台前开发软件。也就是说,两位程序员来完同一个设计,一个作为领航者在后边说代码怎么写,另一个作为实施者写代码。

 优势:

   对项目:

    (1)两个程序员具有相同的缺点和盲点的可能性很小,所以当我们采用结对编程的时候会获得一个强大的解决 方案。人多力量大,人多点子多。(可能会出现过度讨论,浪费时间;当然,也可能创新出更好的方案)

    (2)如果程序员的经验积累足够,是很容易看出存在潜在问题的代码的,即表面上实现了功能,但实际上是一种糟糕的做法。

    (3)两个有经验的程序员同时在一起工作,看起来好像浪费了一个人的时间:但实际上的效果确实完成了更高质量的代码,程序不那么容易出BUG

    (4)一定时期内打乱配对。好处:促进交流,融洽关系;每个人更熟悉具体模块和整体项目;不再为人员流失而过度困扰;不再维护繁杂文档。

   对程序员:

    (5)它可以促进参与项目的程序员自身水平的提高,一对程序员工作的时候,水平较低的一方会潜移默化地受水平略高的程序员影响,学到一些新的东西。而水平高的一方同样因为不断地把自己的想法说出来而整理了自己的思路。

    (6提高效率,尤其是遇到困难时,两个人回去积极解决,而不是有时候的走神、跑偏、私人聊天等。真心是压榨呀~

    (7更少的受到打断人们更不愿意打断两个结对编程的人,而单独工作的人却容易被打断。

 

  劣势:                                                 

    可能出现的问题:(1)、过度讨论,浪费时间;(2)、水平高低不齐,效率低下;(3)、想法过多,思路“跑偏”;(4)、领航者:过度关注细节;一意孤行,默不作声,心不在焉等;(5)、实施者:深藏不露;目中无人;不知所措;思维跳跃;工具不熟悉等。

 

  要求:

    水平差的不太远的程序员和自己配成一对;只用一台计算机;大家选一个人坐在键盘前面负责输入,另一个人坐在后面口述(会不会造成一个人不思考了?不会,因为一个人停顿的时候另一个人会主动的去继续思考;会不会一个人思路太快,另一个跟不上?不会,因为第一个人听不懂他就写不下去,会问)。

    两个人要不断的交流,频率不应低于一分钟一次。整个的设计思想由后面只动口不动手的人主导,而由操键盘的人做实现。由于人的思维速度是快于输入代码的速度的。那么观看的人可以有空闲的时间做额外的思考,观察代码写的有没有问题,结构有没有问题。

    可以两个人分时交替角色。

    虽然编码通常比一个程序员单独工作更快地完成,但是总的程序时间(程序员数目×花费的时间)增加了。管理者需要在工作更快的完成以及缩减测试和调试时间和更高的编码成本之间平衡。对于那些程序员没有完全理解的任务上,程序员期待更多的创造性,挑战,以及高复杂度,此时使用结对编程最有帮助。在简单的,程序员都完全了解的任务上,结对编程导致生产力的净下降。

  发展:

    远程结对编程,就是共享桌面,拓展硬件、解决地域限制;但不利于协作,比如有延时键盘控制混乱等、乒乓结对编程,就是观察者和驾驶者(操作者)测试用例的编写和修改(了解即可)。

    

  总结:对于结对编程还需要进一步的认识和探究,这里只是粗略的介绍。尤其是在项目中怎么推行和解决推行过程中的问题,才是这个课题的重中之重。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/219401.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午10:38
下一篇 2026年3月17日 下午10:38


相关推荐

  • Session.Abandon与Session.Clear之间的区别

    Session.Abandon与Session.Clear之间的区别Session.Clear()就是把Session对象中的所有项目都删除了,Session对象里面什么都没有。但是Session对象还保留。Session.Abandon()就是把当前Session

    2022年7月1日
    27
  • 灾备测试_数据级灾备

    灾备测试_数据级灾备灾备测试

    2025年7月24日
    5
  • python清理浏览器缓存_以编程方式清除边缘浏览器缓存

    python清理浏览器缓存_以编程方式清除边缘浏览器缓存我已经尝试这么做了好几天,并在堆栈溢出和许多其他网站没有运气。在基本上,我需要清除MicrosoftEdgeBrowser的缓存和Internet临时文件。我已经在我自己的电脑上找到了这个文件夹的位置,但是路径在每台电脑上都会动态变化。我不能每次都让程序清除相同的路径,因为路径会随每次安装而变化。在以下是缓存中的文件示例:C:\Users\patdj\AppData\Local\Package…

    2022年7月18日
    20
  • linux防火墙查看状态firewall、iptable[通俗易懂]

    linux防火墙查看状态firewall、iptable[通俗易懂]CentOS7的防火墙配置跟以前版本有很大区别,CentOS7这个版本的防火墙默认使用的是firewall,与之前的版本Centos6.x使用iptables不一样一、iptables防火墙1、基本操作#查看防火墙状态serviceiptablesstatus#停止防火墙serviceiptablesstop#启动防火墙serviceipt…

    2022年4月19日
    116
  • viewport概念

    viewport概念viewport 概念 1 viewport 概念 1 1PPK 对关于三个 viewport 的理论 1 2 查看 viewport 尺寸 1 3 利用 meta 标签对 viewport 进行控制 1 4 设置 viewport 为 idealviewpor 中几种方式 1 5initial scale 缩放方式以及默认值 1 6 解决 JS 延迟问题 1 viewport 概念移动设备上的 viewport 就是设备的屏幕上能用来显示网页内容的区域 viewport 不局限于浏览器可视区域的大小 可能比浏览器的可视区域大 也可能小

    2026年3月16日
    30
  • 数据库课程设计(饭店点餐系统)

    数据库课程设计(饭店点餐系统)1.需求分析2.概念结构设计2.1数据需求2.1.1下订单阶段需要的数据:2.1.2点菜阶段需要的数据:2.1.3结账阶段需要的数据:2.1.4员工管理需要的数据:2.1.5顾客管理需要的数据:2.1.6消费记录管理需要的数据有:2.2事务需求2.2.1数据录入2.2.2数据更新/删除2.2.3数据查询2.3数据项2.2抽象出系统的实体2.3设计E-R图2.3.1菜谱(Menus)E-R图2.3.2顾客(Tomer)E…

    2022年5月12日
    83

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号