2018-2019-2 20175310 实验三《敏捷开发与XP实践》实验报告
一、实验步骤及内容
(一)、敏捷开发与XP实践-1
· 题目要求:
参考 (http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD) 安装alibaba
插件,解决代码中的规范问题。
在IDEA中使用工具Code->Reformate Code
把下面代码重新格式化,再研究一下Code
菜单,找出一项让自己感觉最好用的功能。提交截图,加上自己学号水印。
public class CodeStandard {
public static void main(String [] args){
StringBuffer buffer = new StringBuffer();
buffer.append('S');
buffer.append("tringBuffer");
System.out.println(buffer.charAt(1));
System.out.println(buffer.capacity());
System.out.println(buffer.indexOf("tring"));
System.out.println("buffer = " + buffer.toString());
if(buffer.capacity()<20)
buffer.append("1234567");
for(int i=0; i<buffer.length();i++)
System.out.println(buffer.charAt(i));
}
}
· 实验步骤:
1、安装Alibaba Java Code Guidelines
插件:
打开 File ->Settings ->Plugins
,在搜索框输入alibaba
即可看到Alibaba Java Code Guidelines
插件,点击Install
进行安装,然后重启IDEA生效:
2、规范代码:
①在项目名称上单击右键,在弹出菜单上选择编码规约扫描:
②在弹出的窗口中点击出现问题的语句,在右侧就可以看到详情信息,具体哪句话出错了,还能点击黄色的小灯泡直接修改。
③删除魔法值:提示说不允许任何魔法值直接出现在代码中
因此只需将代码中的20用一个常量来代替就行
④添加@author
的注释信息:
把光标放在类名上,点击出现的more
点击more
之后就可以看到注释信息的模板了
此时进行编码规约扫描就可以看到左下角的绿色弹窗,说明代码已经规范啦~
⑤规范后代码:
/**
* @author 20175310奚晨妍
* @date 2019/04/29
*/
public class CodeStandard {
public CodeStandard() {
super();
}
public static void main(String[] args) {
int n = 20;
StringBuffer buffer = new StringBuffer();
buffer.append('S');
buffer.append("tringBuffer");
System.out.println(buffer.charAt(1));
System.out.println(buffer.capacity());
System.out.println(buffer.indexOf("tring"));
System.out.println("buffer = " + buffer.toString());
if (buffer.capacity() < n) {
buffer.append("1234567");
}
for (int i = 0; i < buffer.length(); i++) {
System.out.println(buffer.charAt(i));
}
}
}
3、代码格式化:
点击Code->Reformate Code
,对代码进行格式化
4、Code
菜单的使用:
个人觉得Code
菜单中最好用的是Override Methods
功能,能够重写方法。
双击就可以出现需要重写的类的框架,这样就方便快捷了许多!
(二)、敏捷开发与XP实践-2
· 题目要求:
在码云上把自己的学习搭档加入自己的项目中,确认搭档的项目加入自己后,下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例,测试成功后git add .; git commit -m "自己学号 添加内容";git push;
提交搭档项目git log的截图,包含上面git commit的信息,并加上自己的学号水印信息。
· 实验步骤:
1、将学习搭档加入自己的项目中:
①进入仓库,点击管理
,点击左侧的仓库成员管理
,仓库权限改为管理员
,然后复制链接将链接分享给搭档就可以啦~
②点击搭档分享的链接,点击接受
即可
③加入成功!
2、下载搭档的Complex
代码
①在仓库中找到搭档的代码,点击克隆下载
,复制链接
②在虚拟机中用git clone https://gitee.com/A5320/pair_programming_code.git
克隆搭档代码
3、对搭档的Complex
代码进行JUnit单元测试:
对加减乘除四种虚数运算都进行了测试,代码如下:
import junit.framework.TestCase;
import org.junit.Test;
public class ComplexTest extends TestCase {
Complex a = new Complex(0, 5);
Complex b = new Complex(-5, -1);
Complex c = new Complex(6,1);
@Test
public void testComplexAdd() throws Exception {
assertEquals("-5.0+4.0i", a.ComplexAdd(b).toString());
assertEquals("6.0+6.0i", a.ComplexAdd(c).toString());
assertEquals("1.0", b.ComplexAdd(c).toString());
}
@Test
public void testComplexSub() throws Exception {
assertEquals("5.0+6.0i", a.ComplexSub(b).toString());
assertEquals("-6.0+4.0i", a.ComplexSub(c).toString());
assertEquals("-11.0-2.0i", b.ComplexSub(c).toString());
}
@Test
public void testComplexMulti() throws Exception {
assertEquals("5.0-25.0i", a.ComplexMulti(b).toString());
assertEquals("-5.0+30.0i", a.ComplexMulti(c).toString());
assertEquals("-29.0-11.0i", b.ComplexMulti(c).toString());
}
@Test
public void testComplexComplexDiv() throws Exception {
assertEquals("-0.2-1.0i", b.ComplexDiv(a).toString());
assertEquals("0.1+0.8i", a.ComplexDiv(c).toString());
assertEquals("-0.8-0.3i", b.ComplexDiv(c).toString());
}
}
4、将测试代码推送到码云
5、git log
搭档的项目,这时就可以看到刚刚我git push
的信息啦~
(三)、敏捷开发与XP实践-3
· 题目要求:
完成重构内容的练习,下载搭档的代码,至少进行三项重构,提交重构后代码的截图,加上自己的学号水印。提交搭档的码云项目链接。
· 实验步骤:
1、对搭档的代码进行编码规约扫描
2、对出现的问题进行一一解决:
-
问题1:
中括号是数组类型的一部分,数组定义如下:String[] args
-
问题1解决方案:
可以直接将[]
提前,或者点击黄色的小灯泡快捷修改
-
问题2:
所有的类都必须添加创建者信息
-
问题2解决方案:
在三个类前均加上创建者信息:
-
问题3:
类名必须遵从驼峰形式:
-
问题3解决方案:
将类名和文件名都用驼峰形式命名。对代码再次进行编码规约扫描,此时出现绿色的对话框,说明代码已经规范啦。
二、码云链接
三、参考博客
实验三 敏捷开发与XP实践
Intellj IDEA 简易教程
四、PSP时间
步骤 | 耗时(min) | 百分比 |
---|---|---|
需求分析 | 40 | 15% |
设计 | 30 | 11% |
代码实现 | 100 | 38% |
测试 | 40 | 15% |
分析总结 | 50 | 19% |