结对编程——阶段二

结对编程阶段二

一.实验目标

 1)体验敏捷开发中的两人合作。
 2)进一步提高个人编程技巧与实践。

二 .实验目的

  1)根据以下问题描述,练习结对编程(pair programming)实践;
  2)要求学生两人一组,自由组合。每组使用一台计算机,二人共同编码,完成实验要求。
  3)要求在结对编程工作期间,两人的角色至少切换 4 次;
  4)编程语言不限,版本不限。建议使用 Python 或 JAVA 进行编程。

三.实验内容  

  1.Java的规范化编程

  统一是指,对于同一个概念,在程序中用同一种表示方法,比如对于供应商,既可以用supplier,也可以用provider,但是我们只能选定一个使用,至少在一个Java项目中保持统一。统一是作为重要的,如果对同一概念有不同的表示方法,会使代码混乱难以理解。即使不能取得好的名称,但是只要统一,阅读起来也不会太困难,因为阅读者只要理解一次。在统一和达意的前提下,用尽量少的标识符。如果不能达意,宁愿不要简洁。比如:theOrderNameOfTheTargetSupplierWhichIsTransfered 太长, transferedTargetSupplierOrderName则较好,但是transTgtSplOrdNm就不好了。省略元音的缩写方式不要使用,我们的英语往往还没有好到看得懂奇怪的缩写。Java中,除了包名,静态常量等特殊情况,大部分情况下标识符使用骆驼法则,即单词之间不使用特殊符号分割,而是通过首字母大写来分割。比如: SupplierName, addNewContract,而不是 supplier_name, add_new_contract。尽量使用通俗易懂的英文单词,如果不会可以向队友求助,实在不行则使用汉语拼音,避免拼音与英文混用。比如表示归档,用archive比较好, 用pigeonhole则不好,用guiDang尚可接受。

大括号的开始在代码块开始的行尾,闭合在和代码块同一缩进的行首。提供对实例以及类变量的public或private访问控制,尽可能不适用默认值或protected访问控制。


避免用一个对象访问一个类的静态变量或方法。应该用类名代替。

避免在一个语句中给多个变量赋相同的值。

用switch()语句实现多路分支。

如果使用JDBC,则考虑使用java.sql.PreparedStatement,而不是java.sql.Statement。用于设置对象状态的方法前缀必须是set;用于检索一个布尔类型对象状态的方法前缀必须是is,而用于检索其他方法前缀必须是get。


程序中应尽可能少使用数字(或字符),尽可能定义静态变量来说明该数字(或字符)的含义。程序中需要赋值或比较时,使用前面定义的静态变量。在循环控制中例外。

  2.程序流程图

 

 

3.结对编程过程

我在和同伴一起做实验时,把开发Java程序放在了第一步。

 

 我们首先在网上查找相关的代码,然后找到了很多我们遇到的bug,通过回忆以前关于Java的知识,我们想到了自动生成随机数的函数random。

 

 

 

 

 

 通过调试完成了这个Java项目。调试截图如下:

 

 

 

 

 四.在完成Java调试后,我们又回到了之前所做的github托管上,通过git的remote将代码上传到我们的仓库上

 

 

 

 项目github地址:https://github.com/1772035039/-

 

五.实验总结

本次实验,我和彭功伟两人一起完成这次实验,我感受到结对编程技术是一个非常简单和直观的概念,能达到事半功倍的工作效果。但是,人与人之间的合作不是一件简单的事情——尤其当人们都早已习惯了独自工作的时候。实施结对编程技术将给软件项目的开发工作带来好处,只是这些好处必须经过缜密的思考和计划才能真正体现出来。而另一方面,两个有经验的人可能会发现配对编程里没有什么技能的转移,但是让他们在不同的抽象层次解决同一个问题会让他们更快地找到解决方案,而且错误更少。
两个程序员具有相同的缺点和盲点的可能性很小,所以当我们采用结对编程的时候会获得一个强大的解决方案。而这个解决方案恰恰是其它软件工程方法学中所没有的。
在我们平时的编程当中,如果遇到一个非常难解决的问题(困难到对该项目产生厌烦的态度),那么你势必会希望录求帮助,无论是从信息量庞大的网上,还是从身边的技术大师那里,你都会努力去解决(前提是你有对计算机知识的热爱)。这个时候不妨采用结对编程试一下,其它的不说,可能感觉就不同。

 

 

 

 

 

 

 

 

posted @ 2020-04-05 09:34  郭建琛  阅读(207)  评论(0编辑  收藏  举报