结对编程

一、角色分配

驾驶员:孙玉  

领航员:王娇

二、作业要求

    黄金点游戏是一个数字小游戏,其游戏规则是:

 

      N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值。提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分。玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动。

 

      现在请大家根据这个游戏规则,编一个可以多人一起玩的小游戏程序,要求如下:

 

      1、本作业属于结对编程项目,必须由二人共同完成,并分别将本次作业过程发到博客,同时将本次作业源代码提交到codeing系统;

 

      2、如果可能的话尽量以C/S或B/S方式实现,即利用服务器接收和处理所有玩家提交的数字,并将结果反馈给各玩家,玩家可以通过客户端提交的数字;

 

      3、如果采用单机方式实现的话,需要为用户提供便利的输入界面;

 

      4、该游戏每次至少可以运行10轮以上,并能够保留各轮比赛结果。

 

      5、作业总结中,驾驶员主要描述本次结对编程中领航者对代码复审做了哪些工作,提出了哪些有建设性的意见和建议。领航者对驾驶员本次工作进行总结,主要包括代码风格、编程技巧等,两人应共同总结与一人编程相比,结对编程是否真正提高了代码质量和编程效率,双方应该将本次工作过程拍若干张照片并发布到博客中。

 

三、程序代码

  程序代码已上传至coding.net系统中,地址为

  https://coding.net/u/popp/p/huangjindianyouxi/git/blob/master/README.md 

四、总结感想

对我来说,结对编程是一个非常简单和直观的概念,能达到事半功倍的工作效果。但是,人与人之间的合作不是一件简单的事情——尤其当人们都早已习惯了独自工作的时候。实施结对编程技术将给软件项目的开发工作带来好处,只是这些好处必须经过缜密的思考和计划才能真正体现出来。当我们真正实施这个办法的时候,却发现它并没有想象中那么美好。

例如:作为水平较好的驾驶员有时候不得不想,“原先一个人工作啊,现在两个人了”;“原来我自己写就好了,现在多一个人我还要给他讲,多浪费时间啊”;“我也讲不明白,我就是喜欢写代码而已,别逼我”。而作为水平较差的领航员的来说,也不得不思考:“这个地方他为什么这么写啊?”;“这个地方怎么跟我平常写的不太一样。”;“哎,我好像不能接受他的编程风格。”;“他这么厉害我还是别发表意见了······”。但好在我们都能调整自己,不管事先事后都能进行良好的沟通,把彼此不明白的地方都一点一点弄明白,让结果能使两个人都比较满意。

通过此次结对编程作业,我深深地体会到,其实结对编程带给我们的好处很多。比如:

1:增强代码和产品质量,并有效的减少BUG。

2:在实际的团队项目中,特别能培养新人,促进沟通,提升团队整体能力。

3:更好的知识共享和信息交流,促进团队协作。

4:促进团队成员的沟通,提升团队凝聚力。

因为我的伙伴能力优于我,作为领航员的我从他那学到了不少的东西,长了不少的见识。收获的知识远远比自己一个人耗尽心力编写程序时来得庞大和轻松。这是以前从来没有过的体验和感受。

五、程序运行结果展示及结对照片

 

posted @ 2016-10-17 20:52  SunnyDemi  阅读(110)  评论(0编辑  收藏  举报