20145328 《Java程序设计》实验三实验报告
20145328 《Java程序设计》实验三实验报告
实验名称
Java敏捷开发与XP实践
实验内容
- XP基础
- XP核心实践
- 相关工具
实验步骤
(一)敏捷开发与XP
- 敏捷开发是一种以人为核心、迭代、循序渐进的开发方法
- XP极限编程是一种全新而快捷的软件开发方法
(二)编码标准
- 程序的版式追求清晰、美观
- 给包、类、变量、方法等标识符命名:包名全部小写,类名第一个字母大写,变量名和方法名第一个字母小写
(三)结对编程
- 在结对编程模式下,一对程序员肩并肩、平等地、互补地进行开发工作
- 两种角色:驾驶员和领航员
(四)版本控制
1.在 git@osc 上新建项目
由于我是将所有的实验代码放在同一个项目中,根据实验序号命名不同的package包进行管理,所以对应的在git上也是只有一个项目,所以这一步可以省略,这里附上实验项目的git连接
下面为实验项目的截图
2.在项目管理中将队友添加为开发者
具体方法为点击 git@osc 实验项目标题下方最右的管理
选项夹,在弹出的窗口中,左方选项栏内选择项目成员管理
-开发者
-添加项目成员
,添加时的页面如下图所示
完成添加后的确认界面如下所示,不过在添加的过程中一定要注意队友的昵称和邮箱,因为有可能出现昵称重名的情况,不要因为疏忽而添加错误
3.在IDEA中利用git功能新建项目【VCS-Checkout form Version Control-Git】
由于我和队友双方都使用的是IDEA进行代码编辑,而使用git bas
h的命令操作比较复杂而且容易出错,队友的对于git的操作并不熟悉,所以我选择通过在IDEA中使用git完成实验的方法,而实际操作下来也发现的确要比git bash
要方便很多,特别是在IDEA中可以直接通过链接来在本地新建一个已经在 git@osc 中存在的项目,此处使用的也正是这种方法。
首先在IDEA上方的选项工具栏中选择【VCS-Checkout form Version Control-Git】,
将 git@osc 中已经存在的项目链接复制到出现的窗口,点击右侧的Test
按钮检查链接是否正确,
由于前面提到过,由于我是将所有的实验代码放在同一个项目中,根据实验序号命名不同的package包进行管理,所以对应的在git上也是只有一个项目,所以这一步依旧省略
4.编写项目代码
5.在IDEA中利用git功能进行【git add】【git commit】【git push】操作,
如下图所示,在所需要上传的文件或文件夹处单击鼠标右键,在弹出的菜单中选择【Git-Add】,
注意:此处若是在文件夹处使用Git-Add,那么相当于在git bash中使用 git add .命令
在上方工具栏中选择【VCS-Git-Commit File…】,
出现如下图所示界面,在图中的文本框中可以填写需要Commit的信息,然后点击下方的Commit按钮即可
接下来在上方的工具栏中选择【VCS-Git-Push…】或在上图中的将鼠标停留在Commit按钮处然后选择【Commit and push…】将会出现如下界面,点击下方的push按钮即可完成上传操作
6.完成自己项目的上传
7.进入队友已完成上传的项目,复制项目地址,利用git功能在本地新建对应的项目【VCS-Checkout form Version Control-Git】
出现错误
由于本地已有同名项目,所以修改本地项目名称即可(后面加_jdy说明该项目来自吉东云进行区分即可)
9.修改对方对应的项目代码
10.再次利用IDEA中的git功能进行【git add】【git commit】【git push】操作,完成对方项目的上传
11.完成对方项目的上传操作
吉冬云experiment项目地址:http://git.oschina.net/jdy1453/experment
吉冬云实验报告blog地址:http://www.cnblogs.com/jdy1453/p/5428125.html
12.上传结果截图
(五)重构
- 在不改变软件外部行为的基础上,改变软件内部的结构
- 修改类名:右击类名,选择菜单中的Refactor->Rename来重命名
重命名后的文件名为MyMath.java
,对类中变量名也进行重构后的类如下图所示
- 对类中未进行封装的部分进行从重新封装。选择菜单中的Refactor->Encapsulate Field…来进行封装
原本的代码以及运行结果如图所示
在Student类的类名处右键,选择Refactor->Encapsulate Field…
出现如下所示界面,可对需要进行封装的变量进行选择,然后点击下方的Refactor按钮即可,
对name变量进行封装后的代码如图所示
同样可对age和id两个成员变量进行封装,结果如下
上面代码中的System.out.println
处还是有问题的,每次打印学生信息都这么写代码违反了DRY原则,造成代码重复,正常的重构可以使用Extract Method...,如下图:
由于Java中所有的类都有个专门的toString方法,我们使用IDEA中Code->Generate->toString()... 给Student类产生一个toString方法,如下图:
修改main的代码,结果如下:
心得体会
本次实验是Java课程的第三次实验,如果不算上实践项目中所需要编写的游戏项目的话,那么这次实验还是比较简单的,因为这一次实验所涉及的内容更多的是关于如何使用git,稍微麻烦一点的也就是因为这是一个组队项目,之前一直没接触过加入项目组或者将其他用户添加成自己项目的开发员,所以最开始出现了一定的问题,但是找到解决方法后很快的就将剩下的内容完成了。由于队友对于git的操作方面并不熟悉,而且我们都是使用的IDEA进行代码编写,便选择的是在IDEA中使用git的方法,而在程序选择时也是选择了最简单的HelloWorld
。对于重构操作的学习了解也让我对于代码的修改有了更深一层的认识。
团队贡献
本次实验的内容基本上都是两人合作共同完成,由于选择的程序是最简单的HelloWorld
,所以实验的重点便是围绕着git的上传自己代码下载队友代码修改后再次上传队友代码为主,实验讨论过程中由我对队友在git过程中的细节进行讲解并答疑,我也在帮她答疑的过程中对自己之前所写的教程进行修改,并发现自己没有看到的知识盲点,如果团队总分是10分,那么根据讨论的结果,我得其中的6分,队友得其中的4分
PSP(Personal Software Process)时间:
步骤 | 耗时 | 百分比 |
---|---|---|
需求分析 | 40min | 20% |
设计 | 30min | 15% |
代码实现 | 50min | 25% |
测试 | 50min | 25% |
分析总结 | 30min | 15% |