[原创]对结对编程的感受

  本周出于老师作业的要求,本周体验了一下结对编程,刚开始还觉得这没什么稀奇,一样都是编程嘛,体验了之后才知道结对编程的优点。

  结对编程,从字面上讲,就是两个人一起编程。而1+1=?这个问题一直是一个疑问,可以大于2,可以等于2,可以小于2,从这次编程经历看来,结对编程(至少是我们这次结对编程),这个式子的答案应该是大于2.

  关于结对编程的许多优点和好处,在邹欣老师的博客中http://www.cnblogs.com/xinz/archive/2011/08/07/2130332.html都可以看到,我也就不多说,我主要分享一下我对这次结对编程经历的感想。在结对编程中,一个程序员负责写代码,另一个负责检查代码错误,查阅必要资料等。这样的编程看似只有一个人写代码,效率不如两个人都写代码效率高,但事实是程序员往往会画更多时间去调bug,二一些bug往往是应为敲代码过程中的手误导致的,这种bug在另一个人帮忙检查时,往往会立刻被发现并纠正。比如在这次编程中,我们是用javascript和html编写生命游戏,在编程过程中,由于我们的数据表示需要对某个原来的矩阵加两行两列,所以经常有一些for循环的次数写错。这种错误往往很难被正在写代码的程序员发现,而旁边检查的程序员却可以发现这种bug(个人就发现了几个)。还有就是写代码的程序员有时候思路会紊乱而旁边检查的程序员思路相对清楚(毕竟注意的焦点不同),所以旁边的程序员还能起到提示作用,这些都是结对编程才能实现的,也是结对相对于两个人各编各的代码这种方式的好处。

  结对编程还能减轻程序员的负担,一个人写完完整的代码,往往会很累,最后bug频出,但是结对编程中,在适当时候两个人可以互换角色,这样写代码的任务就被分给了两个人,也减少了bug率,这次编程我感觉bug出现得比平时少很多,基本功能的编写时间也少了很多。而且本人其实是第一次写javascript程序,但是在队友的帮助下,感觉对这种语言并不是那么陌生,学到了很多东西。

  总之,结对编程减少了程序bug出现的频率,还减少了程序员的负担,更有助于程序员的互相学习,大家不妨一试。

  注:这是本人第一次写博客,可能写的文章很糟糕,大家不喜勿喷。

时间: 2024-11-17 21:23:15

[原创]对结对编程的感受的相关文章

[原创]jQuery的this和$(this)

网上有很多关于jQuery的this和$(this)的介绍,大多数只是理清了this和$(this)的指向,其实它是有应用场所的,不能一概而论在jQuery调用成员函数时,this就是指向dom对象. $(this)指向jQuery对象是无可厚非的,但this就是指向dom对象,这个是因为jQuery做了特殊的处理. 在创建dom的jQuery对象时,jQuery不仅仅为dom创建一个jQuery对象,而且还将dom存储在所创建对象的数组中. elem = document.getElement

关于结对编程的感受

学习进度条: 点滴成就 学习时间 新编写代码行数 博客量(篇) 学习知识点 第一周 10小时  0  0 了解软件工程 第二周 10小时  0  1  项目开题 第三周 15小时  0  1  开通博客.开展项目调查 第四周 20小时  200 1  需求文档.用例图.代码规范 上周老师在课堂上给了一个编程题目,要求两个同学一组共同完成.题目如下:编程实现出30道(100以内)四则运算题目.编程结果如下: 谈谈我对这次结对编程的感受吧.编程过程中虽然遇到了很多问题,但我们最终将题目完成了,觉得还

[原创]iOS 简化冗余代码

正在给深圳某家智能家居开发iPad版本,在已经存在的iPhone版上修改,该app的界面采用的是xib.xib相比代码来写界面,快速高效,但是可维护性和可读性太差.言归正传,看到这些代码后,我的心情很复杂. 任何一门编程领域,任何人都可以参与,就拿iOS开发来说,有的人写出的代码是能执行,但不仅仅要求是能执行,当项目的功能不断增加时,不整洁的编写风格会让人看着想吐,就不用谈什么可维护性了,简直是一团糟. else if (devTypeID==13||devTypeID==14) { XRDim

[原创]国外iOS开发资源

这个网站 http://www.scoop.it/t/pandalit 的iOS开发内容挺丰富的,以前自己都是拿网上的第三方库来达到自己所希望获得的效果,看了看这网站的内容,我觉得我有必要去写些自己想要的code效果了.

蓄水池算法介绍和证明[原创]

蓄水池算法要解决的问题就是在不知道流入数据量多少的情况下,依旧可以随机从这些数中选取K个,乍一听好神奇,其实分析一下背后的概率知识,思想还是很简单的,相信看完我的介绍和证明,你也会觉得很简单. 假设要求随机选择K个元素,假设一共流入的元素有n个. 首先数组a[0...k-1]表示最后返回的结果,最开始流入的k个元素依次放入a[0...k-1]中: 那么从第k+1到第n个元素每一次都有可能把数组a中的元素踢走换成自己,假设现在流入了第i个元素,搞个随机数生成器,pos=rand()%i,如果pos

[原创]收集比较有意思的iOS开源项目

IOS研究之美女图片采集器实现(源码+解析)详解(四十七) IOS研究之智能聊天机器人实现(源码+解析)详解(四十八)

[原创]修正DejalActivityView在iOS8之前系统上存在的Bug

DejalActivityView是国外的第三方库,可自定义文本内容和文本长度的菊花转加载指示器效果.该第三方库与其它hud存在不同,能够遮盖键盘:可以自定义遮盖NavigationBar或不遮盖NavigationBar,能够在status bar显示activity view等效果.该库github地址:https://github.com/Dejal/DejalActivityView DejalActivityView在iOS 8 之前的系统上存在bug,今天使用github上的最新版本

[原创]mac终端前面的计算机名怎么改??

1.修改-之前的名称 mac环境,系统 OS X Yisemite,打开终端, 执行下面命令“Tmp”是你想要改的电脑名称 sudo scutil --set HostName Tmp 执行前,执行后对比: 成功修改,大功告成!(ps:执行过后命令,需要强行退出终端,重新打开就好了) 2.如果想修改-之后的名称,那就修改当前管理员名称即可:

结对编程项目总结

先MARK再写 结对编程 结对编程的优点: 结对编程的缺点: 我的优缺点: 优点: 同伴的优缺点: 设计方法:   契约式设计 单元测试 UML图 算法的关键 结对编程的感受