关于结对编程

说到结对,不仅有编程结对,其实在XP中,这个概念可以更宽泛一些,还可以是设计结对、评审结对、单元测试结对。

设计结对

设计结对是在对某个模块开始编码之前,两人共同完成该模块的设计,这种设计通常不会花费很长时间,不会产生设计文档,更多的是讨论交流,主要考虑是否符合总体架构,是否足够灵活,易于重构等。

单元测试结对

单元测试结对通常是说一个人编写测试代码,另外一个人编写代码来满足测试。这样,任何一个人对设计理解有误,代码都无法通过单元测试,从而避免由同一个人编写单元测试代码和程序代码带来的黑洞,往往可以发现更多的问题或缺陷。

评审结对

评审结对是在编码活动完成、通过单元测试后进行的。一般采用一个人讲述代码组织和编程思路,一个人倾听、提问的形式。这种评审模式更多地强调了相互交流,这会比一个人单独评审,独立撰写总结评审意见的模式效率要高得多,文档、邮件也减少了。

其实,如果两人编程结对了,编程的过程其实也就是复审的过程,完全可以省略评审。

设计结对、评审结对、单元测试结对这三种方式是对结对编程实践的有效补充,操作简单,收益却很大。

  • 编程结对,在任一时刻都只是一个程序员在编程,效率到底有多高呢? 1+1>1是肯定了,但是否1+1>2呢?

    结对编程不能始终保证开发质量和效率始终高于单人编程。

    只有两个经验相等的人结对才有可能真正提高编码效率。

    结对编程始终是两个人的合作行为,其效果会受到多种因素影响。譬如,两个人的性格、个人关系、沟通能力、技术是否互补等都会影响最终的结果。

至少两个极端情形下,结对毫无益处:

第一, 需要静心思考的问题。这时完全可以分头行动,等各自有了理解或解决方案再来讨论;

第二,琐碎毫无技术含量的工作,不得不手工完成的。这种工作考验的只是耐心,不妨分头行动,效率肯定比结对要高。

结对编程的要点

  1. 结对编程是一种质量保证的方式
  2. 就像Scrum一样,并不是所有的团队都有能力实行XP,也不是所有的团队都适合实行XP,视实际情况而定。

https://support.huaweicloud.com/reference-devcloud/devcloud_reference_0017.html#section5

软件工程 结对编程 设计结对 单元测试结对 评审结对 是什么相关推荐

  1. 结对编程的合作情况,以及结对编程的优缺点

    我们合作的过程照 结对编程的优缺点: (1)首先应该是结对编程的高效率了,结对编程的时候,两个人可以分开做不同的unit,也可以同时做相同的unit.在项目的一些简单的unit,一个人能够很简单的un ...

  2. 2019软工实践_作业3_1(结对编程设计博客)

    结对项目:征战十三道 结对队友:庄锡荣 分工:锡荣主要负责原型的设计与美化,我负责博客的编写和原型挑刺. 项目完成时限:1个月(大概时间分配1:3,1为原型设计,即本文所述:3为代码实现,即下一篇相关 ...

  3. 北航2022软件工程第三次作业——结对编程(最长英语单词链)

    软件工程第三次结对编程作业 项目 内容 这个作业属于哪个课程 北京航空航天大学2022春季软件工程(罗杰 任健) 这个作业的要求在哪里 结对编程项目-最长英语单词链 我在这个课程的目标是 学习软件工程 ...

  4. 软件工程课程-结对编程项目

    结对编程项目 评分标准 结对编程项目总共8个周时,总分数55分 作业期限每一周算一周时 未按时完成作业,但在作业截止后的3天时间内提交作业的,得作业得分x0.6 作业截止3天后未完成作业,扣该作业总分 ...

  5. 结对编程作业——四则运算

    Github项目地址 PSP PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 10 10 · Estimat ...

  6. Code Review 与 结对编程

    这篇文章的起因是在<"敏捷中国史"交流群>里的一个争论,我希望能够通过这篇文章说明自己的一个观点:相对于结对编程,Code Review是一种更加合理与普适性的研发实践 ...

  7. 【华为大咖分享】3.如何做Code Review 与 结对编程?

    文:华为云DevCloud  庄表伟 这篇文章的起因是在<"敏捷中国史"交流群>里的一个争论,我希望能够通过这篇文章说明自己的一个观点:相对于结对编程,Code Rev ...

  8. 罗杰软工第三次作业——结对编程

    BUAA-2023软件工程结对编程博客作业 项目 这个作业属于哪个课程 2023北航敏捷软件工程 这个作业的要求在哪里 结对项目-最长英语单词链 我在这个课程的目标是 学习并实践软件工程开发的方法论. ...

  9. 软工第三次作业——结对编程之最长单词链

    项目 内容 这个作业属于哪个课程 2023北航敏捷软工 这个作业的要求在哪里 结对项目-最长单词链 我在这个课程的目标是 学习软件工程理论,在实践中体会并运用软件工程理论,收获团队开发和软件工程实践经 ...

  10. 结对编程其实可以变变?

    想必大家对敏捷开发中的结对编程都有所了解,可在公司试用推广时却很容易遭到大多数同事的反对,反对理由如下: 1.长期的习惯导致在有个人在旁边监督你编写代码时很别扭: 2.敏捷的结对编程要求两个程序员最好 ...

最新文章

  1. 链表问题10——两个单链表生成相加链表(方法二)
  2. 在IDEA 中用maven创建web项目
  3. Go学习笔记07-结构体与方法
  4. socket自定义框架
  5. python字符串转字典并获取多层嵌套字典元素
  6. VMware Workstation虚拟机窗口小,无法显示内部系统全部桌面
  7. 常见排序算法的python实现
  8. 1113 Integer Set Partition(25 分)
  9. Python3控制安卓手机快手极速版持续金币收益
  10. python 高等数学_Python在高等数学中的应用
  11. 《MATLAB智能算法30个案例》:第11章 基于多层编码遗传算法的车间调度算法
  12. 利用域环境,处理瑞星网络版杀毒软件的问题
  13. python虚拟变量回归_Python中使用虚拟变量的OLS最佳解决方案?
  14. [培训-无线通信基础-8]:分集技术(微分集、宏分集、信号合并、分集增益)
  15. 睡眠麻痹 CSP HSP
  16. Rockchip官方开发板的Android固件下载地址汇总
  17. linux 网卡队列深度,linux 磁盘队列深度nr_requests 和 queue_depth
  18. chatgpt智能提效职场办公-ppt怎么转pdf文件
  19. 我是如何把python爬虫获取到的数据写入Excel的?
  20. iOS开源库–最全的整理

热门文章

  1. Webservice更新时出错。下载”。。。”时出错。请求失败,错误信息为:
  2. AD OU管理|委派密码重置权限
  3. ERROR 1201 (HY000) Could not initialize master info structure
  4. AtomicInteger的CAS算法浅析
  5. 内置函数、匿名函数、递归、二分法
  6. 易语言-MD5加密16位和32位方法
  7. 如何安装安信可一体化开发环境【转】
  8. Android04-UI01常用控件
  9. 写得好 git 提交信息
  10. java基础之输入语句