结对编程总结by黄柏欣李斌
在十一国庆期间(当然,还有国庆之前的几天),我们进行了一个结对编程的项目。
对我受益良多,在伙伴面前发现自己的渺小,在知识面前,始终输给这浩瀚的海洋,及时发现了自己的不足,这次项目,对我来说就相当于一个实际的项目。并且在一些逻辑方面并不是考虑的很严谨,最后的问题也是非常真实。还好,在伙伴的合作下,是我们的程序接近完美重要的一环。不仅提高了效率,也保证了程序编写的正确度。
最后就浅谈一下,我们对于结对编程的感受。
经验与教训:
一、结对编程的优势
我们认为,结对编程的优势主要就在于设计思路的共享,和我们互相为对方避免错误。总的来说,自己在编程时犯下的错误,有些尽管很简单,但却难以发现,而这些在另一个人眼中,却会十分明显。当然结对编程也有不适用的地方,比如其他课程的编程作业,需要我们每个人独立完成,就不能依赖同伴的帮助,还有就是一些十分传统的、规范的编程任务,比如写一段最常规的快排算法,此时如果有人在旁边,就纯粹是浪费时间,因为这些内容对我们而且太熟悉了,不需要有人在旁指导。
因为结对编程可以很大程度上提高编程效率,而且两人轮流编程,不会太过疲惫,因此十分适合敏捷开发。如果未来我们从事软件开发的工作,我们会十分乐于进行结对编程,因为这会极大的改善我们的编程体验,是编程不再那么枯燥,debug之路也不会那么恐怖。
比如在设计阶段,我们其中一个人想到采用策略模式来解决这个问题,采用一个接口作为抽象行为层。
另外一个人发现我们这些具体的算法类有一些公用行为,于是考虑用抽象类代替原来的接口作为抽象行为层,这样可以把那些公用行为上移到抽象层,大大减少了冗余代码,使设计变得更加优雅。
二、结对编程的劣势
结对编程之初,我们两个的配合还是有些不顺畅,使用IDE的习惯有差异,编码习惯有差异,甚至对某个词语的表达方式都存在差异,会影响到我们的效率。
正当我们相互磨合渐渐适应对方,我们的任务也基本结束了。
两个人一起编程难免出现意见不一致的现象,出现这种情况我们采取的方式是停止手头的工作,直到讨论清楚得出结论为止,有时候我们这样的讨论可能持续时间比较长,会影响到我们的生产力。
三、结对编程的过程心得
在写代码的过程中其实遇到了很多问题,看了需求文档觉得界面的实现好难,但是最后发现界面是最好做的,只要做几个按钮和文本框,再调用一个做好的皮肤包就好,(皮肤包真的很难懂)但其实最难的部分是就算结果的函数和计算题出题界面的功能实现,这个地方改了好久,总是由于逻辑错误报错,要不就是调用函数错误,好在最后在队友的帮助下完成了,总之做完这个项目之后,我觉得解决了我对界面的很多疑惑,真的学到了很多知识,尤其是对写代码更加熟悉了。
结对编程总结by黄柏欣李斌的更多相关文章
- 结对编程—黄金点游戏WinForm单机版
本小游戏场景来自邹欣老师的<移山之道>一书: "阿超的课都是下午两点钟,这时班上不少的同学都昏昏欲睡,为了让大家兴奋起来,阿超让同学玩一个叫"黄金点"的游戏: ...
- 2017-2018-2 165X 『Java程序设计』课程 结对编程练习_四则运算
2017-2018-2 165X 『Java程序设计』课程 结对编程练习_四则运算 经过第一阶段的学习,同学们已经熟悉了这门语言基本的用法.在一次又一次对着电脑编写并提交代码,进行练习的时候,有没有觉 ...
- 2017-2018-2 1723《程序设计与数据结构》第九周作业 & 第二周结对编程 总结
作业地址 第九次作业:https://edu.cnblogs.com/campus/besti/CS-IMIS-1723/homework/1878 (作业界面已评分,可随时查看,如果对自己的评分有意 ...
- 20172313『Java程序设计』课程结对编程练习_四则运算第二周阶段总结
20172313『Java程序设计』课程结对编程练习_四则运算第二周阶段总结 结对伙伴 20172326康皓越 博客地址(http://www.cnblogs.com/326477465-a/p/90 ...
- 20172326『Java程序设计』课程结对编程练习_四则运算第二周阶段总结
20172326『Java程序设计』课程结对编程练习_四则运算第二周阶段总结 小组成员 20172313 余坤澎 20172332 于欣月 20172326 康皓越 小组编程照片 设计思路 通过一个E ...
- 20172332『Java程序设计』课程结对编程练习_四则运算第二周阶段总结
20172313『Java程序设计』课程结对编程练习_四则运算第二周阶段总结 小组成员 20172326康皓越 20172313余坤澎 20172332于欣月 小组编程照片 设计思路 设计一个生成符号 ...
- 软件工程 in MSRA 黄金点游戏-第一次结对编程
简单介绍 第一次结对编程,邹欣老师选择了一个博弈游戏作为题目.博弈论是一门非常有趣的学科.之前竞赛时接触的博弈论大部分都是存在均衡点/必胜策略的.像这次这种多人参与,没有完美策略,你方唱罢我登台的游戏 ...
- 结对编程--基于android平台的黄金点游戏
游戏内容: 阿超的课都是下午两点钟,这时班上不少的同学都昏昏欲睡,为了让大家兴奋起来,阿超让同学玩一个叫“黄金点”的游戏: N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或1 ...
- 结对编程-地铁续(有种上个学期OO的既视感)
我们组比较特殊..三人结对 github:https://github.com/qingchanghan/WPFUI_Metro po一张照片: 石浩然,韩青长.陈彦吉 (台式机真的很高端,分屏贼帅) ...
随机推荐
- css 之单行文本显示省略和多行文本省略
一.单行文本显示省略号...... overflow:hidden; white-space:nowrap; text-overflow:ellipsis; <!DOCTYPE html> ...
- php 函数func_get_args()、func_get_arg()与func_num_args()之间的区别
php经常会有一些看似相近的函数,然而区别很大.[func_get_arg(),func_get_args(),func_num_args()]的区别,我们先看一下,下面的实例代码 从上面的结果中我们 ...
- 将eChart图片利用POI导出到Excel
在使用POI进行将数据导出到Excel时, 若要将eChart在前端生成的统计图(如柱状图.折线图.饼图等)一并导出,使用POI在后台构建数据图比较复杂,因此我选择将eChart在前端的统计图的bas ...
- Python实例---三级菜单的实现[high]
# version: python3.2.5 # author: 'FTL1012' # time: 2017/12/7 09:16 menu = { '陕西': { '西安': { '未名区': [ ...
- windows10 彻底卸载 Docker 和 DockerNAT
删除docker程序 记事本新建脚本文件 a.ps1,内容如下: $ErrorActionPreference = "SilentlyContinue" kill -force - ...
- 彻底解密 Spark 的 HashShuffle
本课主题 Shuffle 是分布式系统的天敌 Spark HashShuffle介绍 Spark Consolidated HashShuffle介绍 Shuffle 是如何成为 Spark 性能杀手 ...
- January 07 2017 Week 1st Saturday
Procrastination is the thief of time. 拖延乃是光阴之窃贼. My parents always tell me that things ought to be d ...
- OC基础数据类型-NSValue
1.NSValue:将指针等复杂的类型存储为对象 struct sct { int a; int b; }sctt; NSValue * value = [[NSValue alloc] initWi ...
- 判断元素(expected_conditions)
判断元素 如何判断一个元素是否存在,如何判断 alert 弹窗出来了,如何判断动态的元素等等一系列的判断,在 selenium 的 expected_conditions 模块收集了一系列的场景判断方 ...
- Java集合框架中的快速失败(fail—fast)机制
fail-fast机制,即快速失败机制,是java集合框架中的一种错误检测机制.多线程下用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加.删除),则会抛出Concurre ...