JAVA实验三

实验步骤:

 

 

 

(一)敏捷开发与XP:

 

XP准则:

 

1.沟通 :XP认为项目成员之间的沟通是项目成功的关键,并把沟通看作项目中间协调与合作的主要推动因素。

 

2.简单 :XP假定未来不能可靠地预测,在现在考虑它从经济上是不明智的,所以不应该过多考虑未来的问题而是应该集中力量解决燃眉之急。

 

3.反馈 :XP认为系统本身及其代码是报告系统开发进度和状态的可靠依据。系统开发状态的反馈可以作为一种确定系统开发进度和决定系统下一步开发方向的手段。

 

4.勇气:代表了XP认为人是软件开发中最重要的一个方面的观点。在一个软件产品的开发中人的参与贯穿其整个生命周期,是人的勇气来排除困境,让团队把局部的最优抛之脑后,达到更重大的目标。表明了XP对“人让项目取得成功”的基本信任态度。

 

XP软件开发的活动:编码、测试、倾听、设计。其中的编码标准,结对编程,代码集体所有,测试,重构等实践过程较为重要。

 

(二)编码标准

编程标准包含:具有说明性的名字、清晰的表达式、直截了当的控制流、可读的代码和注释,以及在追求这些内容时一致地使用某些规则和惯用法的重要

1、缩进

【source->Format】 或用快捷键【Ctrl+Shift+F】就可以按Eclipse规定的规范缩进

2、命名规则

         要体现各自的含义

         包、类、变量用名词

         方法名用动宾

         包名全部小写,如:io,awt

         类名第一个字母要大写,如:HelloWorldApp

         变量名第一个字母要小写,如:userName

         方法名第一个字母要小写:setName

标识符名字应当直观且可以拼读

一般采用英文单词或其组合,便于记忆和阅读

标识符的长度“min-length && max-information”的原则:去元音法

一般全局变量用具有说明性的名字,局部变量用短名字:单字符的名字,常见的如i,j,k等用作局部变量

3、代码标准:七个原则

不要预先花费太多时间

目标应该是团队中没有人辨认各自的代码

以团队为单位对某一标准达成协议,然后遵守这一标准

不是事无巨细的规则列表,而是去本报代码可交流的指导方针

编码标准开始时应该很简单,然后根据团队经验逐步优化

创建能够工作的最简单标准,然后逐步发展

只制定适合本团队的

(三)结对编程

结对编程是XP中的重要实践。在结对编程模式下,一对程序员肩并肩、平等地、互补地进行开发工作。

1、两个角色:

驾驶员(Driver)是控制键盘输入的人。

领航员(Navigator)起到领航、提醒的作用。

2、如何和为何

•     驾驶员:写设计文档,进行编码和单元测试等XP开发流程。

•     领航员:审阅驾驶员的文档、驾驶员对编码等开发流程的执行;考虑单元测试的覆盖率;思考是否需要和如何重构;帮助驾驶员解决具体的技术问题。

•     驾驶员和领航员不断轮换角色,不要连续工作超过一小时,每工作一小时休息15分钟。领航员要控制时间。

•     主动参与。任何一个任务都首先是两个人的责任,也是所有人的责任。没有“我的代码”、“你的代码”或“他/她的代码”,只有“我们的代码”。

•     只有水平上的差距,没有级别上的差异。两人结对,尽管可能大家的级别资历不同,但不管在分析、设计或编码上,双方都拥有平等的决策权利。

 

(四)版本控制

 

我的代码库:http://git.shiyanlou.com/20135105

 

1、好处

•       版本控制提供项目级的 undo(撤销) 功能: 没有什么事情是终结版本, 任何错误必须很容易回滚。 假设你在使用世界上最复杂的文字处理系统。 它具备了所有的能想到的功能,就是没有支持 DELETE(删除) 键。想象你打字的时候得多么的谨慎和缓慢吧, 特别是一篇超大的文档的快临近末尾的时候, 一个不小心就要重头再来(试想你选中所有的文字, 不小心按了 DELETE 键, 因为没有撤销功能,只好重新录入)。编辑文字和版本控制相同,任何时候都需要回滚,无论是一个小时, 一天, 还是一周, 这让你的团队工作自由快速的工作, 而且对于修正错误也非常自信。

•       版本控制允许多人在同一代码上工作, 只要遵守一定的控制原则就行。 再也不会发生诸如一个人覆盖了另一个人编辑的代码,导致那个人的修改无效这样的情况。

•       版本控制系统保存了过去所作的修改的历史记录。如果你遭遇到一些惊讶的代码,通过版本控制系统可以很容易找出是谁干的, 修改了什么, 修改的时间, 如果幸运的话,还能找出原因。

•       版本控制系统还支持在主线上开发的同时发布多个软件版本。在软件发布的时候也不需要整个团队的停止工作,不需要冻结代码。

•       版本控制也是项目级的时间机器,你可以选择任何一个时间, 精确地查看项目在当时的情况。 这对研究非常有用, 也是重现以前某个有问题的发布版本的基础。

 

2、举例:Hello World.java

 

 

 

(五)重构:

 

         重构(Refactor),就是在不改变软件外部行为的基础上,改变软件内部的结构,使其更加易于阅读、易于维护和易于变更.

 

先进行重命名操作

再进行类中元素的封装操作

之后进行ToString方法的封装

 一个完整的重构流程包括:

 1.      从版本控制系统代码库中Check out code

 2.      读懂代码(包括测试代码)

 3.      发现bad smell

 4.      Refactoring

 5.      运行所有的Unit Tests

 6.      往代码库中Check in code

(六)实践项目

源代码:

 

posted on 2015-06-04 23:13  20135105  阅读(158)  评论(0)    收藏  举报