在十一国庆期间(当然,还有国庆之前的几天),我们进行了一个结对编程的项目。
对我受益良多,在伙伴面前发现自己的渺小,在知识面前,始终输给这浩瀚的海洋,及时发现了自己的不足,这次项目,对我来说就相当于一个实际的项目。并且在一些逻辑方面并不是考虑的很严谨,最后的问题也是非常真实。还好,在伙伴的合作下,是我们的程序接近完美重要的一环。不仅提高了效率,也保证了程序编写的正确度。
最后就浅谈一下,我们对于结对编程的感受。
 
经验与教训:
 
一、结对编程的优势
 
我们认为,结对编程的优势主要就在于设计思路的共享,和我们互相为对方避免错误。总的来说,自己在编程时犯下的错误,有些尽管很简单,但却难以发现,而这些在另一个人眼中,却会十分明显。当然结对编程也有不适用的地方,比如其他课程的编程作业,需要我们每个人独立完成,就不能依赖同伴的帮助,还有就是一些十分传统的、规范的编程任务,比如写一段最常规的快排算法,此时如果有人在旁边,就纯粹是浪费时间,因为这些内容对我们而且太熟悉了,不需要有人在旁指导。
    因为结对编程可以很大程度上提高编程效率,而且两人轮流编程,不会太过疲惫,因此十分适合敏捷开发。如果未来我们从事软件开发的工作,我们会十分乐于进行结对编程,因为这会极大的改善我们的编程体验,是编程不再那么枯燥,debug之路也不会那么恐怖。  
    比如在设计阶段,我们其中一个人想到采用策略模式来解决这个问题,采用一个接口作为抽象行为层。
另外一个人发现我们这些具体的算法类有一些公用行为,于是考虑用抽象类代替原来的接口作为抽象行为层,这样可以把那些公用行为上移到抽象层,大大减少了冗余代码,使设计变得更加优雅。
 
二、结对编程的劣势
 
结对编程之初,我们两个的配合还是有些不顺畅,使用IDE的习惯有差异,编码习惯有差异,甚至对某个词语的表达方式都存在差异,会影响到我们的效率。
正当我们相互磨合渐渐适应对方,我们的任务也基本结束了。
两个人一起编程难免出现意见不一致的现象,出现这种情况我们采取的方式是停止手头的工作,直到讨论清楚得出结论为止,有时候我们这样的讨论可能持续时间比较长,会影响到我们的生产力。

三、结对编程的过程心得

在写代码的过程中其实遇到了很多问题,看了需求文档觉得界面的实现好难,但是最后发现界面是最好做的,只要做几个按钮和文本框,再调用一个做好的皮肤包就好,(皮肤包真的很难懂)但其实最难的部分是就算结果的函数和计算题出题界面的功能实现,这个地方改了好久,总是由于逻辑错误报错,要不就是调用函数错误,好在最后在队友的帮助下完成了,总之做完这个项目之后,我觉得解决了我对界面的很多疑惑,真的学到了很多知识,尤其是对写代码更加熟悉了。

最新文章

  1. php与js中函数参数的默认值设置
  2. JSTL基础
  3. Implementing SQL Server Row and Cell Level Security
  4. php 迭代器
  5. source insight项目文件列表固定嵌入右侧
  6. ORA-04052\ ORA-00604\ORA-12154
  7. 给jdk写注释系列之jdk1.6容器(11)-Queue之ArrayDeque源码解析
  8. 代码-Weka的决策树类J48
  9. BZOJ 1048 分割矩阵
  10. Qemu之Network Device全虚拟方案三: I/O虚拟化
  11. ORA-01403: no data found
  12. JSP标准标签库(JSTL)--国际化标签库 fmt
  13. 微信小程序中遮罩层的滚动穿透问题
  14. 设置mac笔记本为固定ip
  15. 【工具技巧】:sublime notepad++ 多行编辑
  16. vm无法删除干净老版本,新版本无法安装解决
  17. 头像修改功能 包含ios旋转图片 但是旋转后没遮罩, 正常图片可以显示遮罩 宽高不规则图片没做控制 遮罩框可以拖动
  18. Spyder docstrings文档字符串的标准
  19. POJ 1426 Find the Multiple 思路,线性同余,搜索 难度:2
  20. jquery mobile header title左对齐 button右对齐

热门文章

  1. spring cloud Eureka server配置
  2. 为什么java中只允许继承一个类?
  3. How to rename table name
  4. 安装office2016和激活。
  5. Excel工资表
  6. 用timer自定义计划任务时间
  7. August 30th 2017 Week 35th Wednesday
  8. 【2017-11-08】Linux与openCV:opencv版本查看及库文件位置等
  9. JvisualVM的使用【转载】
  10. PostgreSQL 连接的问题