关键词:
2018-2019-20175322 实验三敏捷开发与XP实践《Java开发环境的熟悉》实验报告
实验内容
- 1.XP基础
- 2.XP核心实践
- 3.相关工具
实验要求
- 1.没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程
- 2.完成实验、撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等)。报告可以参考范飞龙老师的指导
- 严禁抄袭,有该行为者实验成绩归零,并附加其他惩罚措施。
实验步骤
(一)编码标准
- Java中的一般的命名规则有:
- 要体现各自的含义
- 包、类、变量用名词
- 方法名用动宾
- 包名全部小写,如:io,awt
- 类名第一个字母要大写,如:HelloWorldApp
- 变量名第一个字母要小写,如:userName
- 方法名第一个字母要小写:setName
- ...
- 安装alibaba插件
- 打开
Settings ->Plugins
在搜索框输入
alibaba
即可看到Alibaba Java Code Guidelines
插件,点击Install
进行安装,然后重启IDE生效,安装完成后如图:
在项目名称上单击右键,在弹出菜单上选择
编码规约扫描
,出现下图内容:
不规范的地方,有中文提示并且定位到了行,alibaba把问题分为block/critical/major三个等级,有些规则可以一键修复
- 打开
- 代码问题:
- 在if/else/for/while/do语句中必须使用大括号,即使只有一行代码,避免使用
if(conditions)statement;
- 所有的覆写方法,必须加@Override注解
- Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用equals
- 方法名,参数名,成员变量,局部变量都统一使用lowerCamelCase,必须遵循驼峰形式
- 不允许任何魔法值(即未经定义的常量)直接出现在代码中
- 所有的类都必须添加创建者信息
- 方法内部单行注释,在被注释语句上方另起一行,使用//注释。方法内部多行注释使用/* */注释。注意与代码对齐
- 类、类属性、类方法的注释必须使用javadoc规范,使用/**内容/格式,不得使用//xxx方式和/xxx*/方式
- 类名使用UpperCamelCase风格,必须遵从驼峰形式,但以下情形例外:(领域模型的相关命名)DO / BO / DTO / VO / DAO
- 在if/else/for/while/do语句中必须使用大括号,即使只有一行代码,避免使用
- 规范后的代码:
/**
* CodeStandard
* @author zyh20175322
* @date 2019/5/2
*/
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());
int n = 20;
if (buffer.capacity() < n)
buffer.append("1234567");
for (int i = 0; i < buffer.length(); i++)
System.out.println(buffer.charAt(i));
- 规范后显示`No suspicious code found. 1 files processed in File...`表明未发现可疑代码,规范成功
- code菜单
重写覆盖方法(Override Methods):
Ctrl + O
- 实现接口方法(Implements Methods):
Ctrl + I
- Gengrate:
Alt + Insert
- Surround With:
Ctrl+Alt+T
- 智能选择并实现(SmartType):
Ctrl + Shift + 空格
- 循环往上选择单词(Cyclic Expand Word):
Alt + /
- 循环往下选择单词 (Cyclic Expand Word)
Alt + Shift + /
- 方法展开 ( Expand)
Ctrl + 加号
- 方法折叠 (Collapse)
Ctrl + 减号
- 全部方法展开( Expand All )
Ctrl + Shift + 加号
- 全部方法折叠 ( Collapse All )
Ctrl + Shift + 减号
- 展开Java doc注释 ( Expand doc comments )
- 折叠Java doc注释 ( Collapse doc comments )
- 行注释 (Comment with Line Comment )
Ctrl + /
- 块注释 ( Comment with Block Comment )
Ctrl + Shift + /
- 格式化代码 (Reformat Code )
Ctrl + Alt + L
- 弹出格式化弹框 ( Show Reformat File Dialog )
Ctrl + Alt + Shift + L
重新整理代码 (Rearrange Code)
(二)Git中添加添加仓库成员及测试代码
- 要求:
- 在码云上把自己的学习搭档加入自己的项目中,确认搭档的项目加入自己后,下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例,测试成功后git add .; git commit -m "自己学号 添加内容";git push;
- 提交搭档项目git log的截图,包含上面git commit的信息,并加上自己的学号水印信息
- 步骤:
打开码云,进入仓库,点击
管理 -> 添加仓库成员 -> 邀请用户
效果:
搭档的Complex代码:
public class Complex //a + bi
private double a;
private double b;
public Complex() //构造方法,置0
this.a = 0;
this.b = 0;
public Complex(double a, double b) //构造方法,初始化一个复数
this.a = a;
this.b = b;
public double getA() //获取实部
return this.a;
public double getB() //获取虚部
return this.b;
public double setA(double a) //设置实部
this.a = a;
return a;
public double setB(double b) //设置虚部
this.b = b;
return b;
Complex ComplexAdd(Complex c)//复数相加
double a = c.getA();
double b = c.getB();
double newA = a + this.a;
double newB = b + this.b;
Complex Result = new Complex(newA,newB);
return Result;
Complex ComplexMinus(Complex c)//复数相减
double a = c.getA();
double b = c.getB();
double newA = a - this.a;
double newB = b - this.b;
Complex Result = new Complex(newA,newB);
return Result;
Complex ComplexMulti(Complex c)//复数相乘
double a = c.getA();
double b = c.getB();
double newA = a * this.a;
double newB = b * this.b;
Complex Result = new Complex(newA,newB);
return Result;
Complex ComplexDiv(Complex c)//复数相乘
double a = c.getA();
double b = c.getB();
double newA = a / this.a;
double newB = b / this.b;
Complex Result = new Complex(newA,newB);
return Result;
public String toString()
String s = " ";
if (b > 0)
s = a + "+" + b + "i";
if (b == 0)
s = a + "";
if (b < 0)
s = a + " " + b + "i";
return s;
- 搭档测试代码:
import junit.framework.TestCase;
import org.junit.Test;
import static org.junit.Assert.*;
public class ComplexTest extends TestCase
Complex c1 = new Complex(0, 3);
Complex c2 = new Complex(-1, -1);
Complex c3 = new Complex(2,1);
@Test
public void testgetRealPart() throws Exception
assertEquals(-1.0, new Complex().setA(-1.0));
assertEquals(5.0, new Complex().setA(5.0));
assertEquals(0.0, new Complex().setA(0.0));
@Test
public void testgetImagePart() throws Exception
assertEquals(-1.0, new Complex().setB(-1.0));
assertEquals(5.0, new Complex().setB(5.0));
assertEquals(0.0, new Complex().setB(0.0));
@Test
public void testComplexAdd() throws Exception
assertEquals("-1.0+2.0i", c1.ComplexAdd(c2).toString());
assertEquals("2.0+4.0i", c1.ComplexAdd(c3).toString());
assertEquals("1.0", c2.ComplexAdd(c3).toString());
@Test
public void testComplexSub() throws Exception
assertEquals("-1.0 -4.0i", c1.ComplexMinus(c2).toString());
assertEquals("2.0 -2.0i", c1.ComplexMinus(c3).toString());
assertEquals("3.0+2.0i", c2.ComplexMinus(c3).toString());
@Test
public void testComplexMulti() throws Exception
assertEquals("-0.0 -3.0i", c1.ComplexMulti(c2).toString());
assertEquals("0.0+3.0i", c1.ComplexMulti(c3).toString());
assertEquals("-2.0 -1.0i", c2.ComplexMulti(c3).toString());
@Test
public void testComplexComplexDiv() throws Exception
assertEquals("-0.0 -3.0i", c2.ComplexDiv(c1).toString());
assertEquals("-0.0 -3.0i", c2.ComplexDiv(c1).toString());
assertEquals("-2.0 -1.0i", c2.ComplexDiv(c3).toString());
- 测试结果:
(三)重构
- 要求:完成重构内容的练习,下载搭档的代码,至少进行三项重构,提交重构后代码的截图,加上自己的学号水印。提交搭档的码云项目链接
- 步骤:
添加创建者信息
给覆写方法加上@Override注解
方法名,参数名,成员变量,局部变量都统一使用lowerCamelCase,遵从驼峰形式
在if/else/for/while/do语句中必须使用大括号,即使只有一行代码
规范结果:
码云链接
参考资料
201753122018-2019-2实验三敏捷开发与xp实践实验报告
201753122018-2019-2实验三敏捷开发与XP实践实验报告实验步骤与运行结果实验三敏捷开发与XP实践-1实验三敏捷开发与XP实践http://www.cnblogs.com/rocedu/p/4795776.html,Eclipse的内容替换成IDEA参考http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD安... 查看详情
2017-2018-220165331实验三《敏捷开发与xp实践》实验报告
实验三敏捷开发与XP实践实验报告封面课程:Java程序设计班级:1653姓名:胡麟学号:20165331成绩:指导教师:娄嘉鹏实验日期:2018.4.28实验密级:预习程度:实验时间:15:35-17:50仪器组次:必修/选修:实验序号:3实验名称:... 查看详情
2017-2018-220165327实验三《敏捷开发与xp实践》实验报告
2017-2018-220165327实验三《敏捷开发与XP实践》实验报告实验三《敏捷开发与XP实践》一、实验报告封面课程:Java程序设计班级:1653姓名:杨靖涛学号:20165327指导教师:娄嘉鹏实验日期:2018.4.28实验时间:15:35-17:50实验序号:三... 查看详情
实验三敏捷开发与xp实践(代码片段)
实验三《敏捷开发与XP实践》实验报告一.敏捷开发与XP实践-1①实验要求:敏捷开发与XP实践http://www.cnblogs.com/rocedu/p/4795776.html,Eclipse的内容替换成IDEA参考http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD安装alibaba插件,解决代码中的... 查看详情
2018-201920175232实验三《敏捷开发与xp实践》实验报告
实验三敏捷开发与XP实践-1实验三敏捷开发与XP实践http://www.cnblogs.com/rocedu/p/4795776.html,Eclipse的内容替换成IDEA参考http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD安装alibaba插件,解决代码中的规范问题。在IDEA中使用工具(Code->Refor... 查看详情
实验三敏捷开发与xp实践(代码片段)
实验三敏捷开发与XP实践课程:Java程序设计班级:1652姓名:孔月学号:20165208指导教师:娄嘉鹏实验日期:2018.4.28实验名称:敏捷开发与XP实践实验内容及要求:XP基础XP核心实践相关工具实验内容、步骤与体会目录:(一)在IDE... 查看详情
2018-2019-220175320实验三《敏捷开发与xp实践》实验报告(代码片段)
2018-2019-220175320实验三《敏捷开发与XP实践》实验报告一、实验步骤及内容软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。软件工程包括下列领域:软件需求分析、软件设计、软件构建、软... 查看详情
20165220实验三敏捷开发与xp实践实验报告(代码片段)
实验三敏捷开发与XP实践-1实验要求:实验三敏捷开发与XP实践http://www.cnblogs.com/rocedu/p/4795776.html,Eclipse的内容替换成IDEA参考http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD安装alibaba插件,解决代码中的规范问题。在IDEA中使用工具... 查看详情
2018-2019-520175304实验三《敏捷开发与xp实践》实验报告
2018-2019-520175304实验三《敏捷开发与XP实践》实验报告一、实验报告封面课程:Java程序设计班级:1753班姓名:刘朝尹学号:20175304指导教师:娄嘉鹏实验日期:2019年5月1日实验时间:13:45-15:25实验序号:实验三实验名称:敏捷开发... 查看详情
20175325《java程序设计》实验三《敏捷开发与xp实践》实验报告(代码片段)
20175325《JAVA程序设计》实验三《敏捷开发与XP实践》实验报告一、实验报告封面课程:Java程序设计班级:1753班姓名:石淦铭学号:20175325成绩:指导教师:娄嘉鹏实验日期:2019年5月2日实验时间:13:45-17:25实验序号:实验三实验... 查看详情
20165329实验三敏捷开发与xp实践(代码片段)
20165329实验三敏捷开发与XP实践一、敏捷开发与XP实践-1实验要求:在IDEA中使用工具(Code->ReformateCode)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能。提交截图,加上自己学号水印。publicclassCo... 查看详情
2017-2018-220165204实验三《敏捷开发与xp实践》实验报告
2017-2018-220165204实验三《Java面向对象程序设计》实验报告一、实验报告封面课程:Java程序设计班级:1652班姓名:贾普涵学号:20165204指导教师:娄嘉鹏实验日期:2018年4月27日实验时间:13:45-15:25实验序号:实验三实验名称:敏捷... 查看详情
20165235实验三敏捷开发与xp实践(代码片段)
20165235实验三敏捷开发与XP实践主目录:姓名:祁瑛学号:20165235班级:1652实验课程:JAVA程序设计实验名称:Java面向对象程序设计实验时间:2018.4.30指导老师:娄家鹏敏捷开发与XP实践-1任务1在IDEA中使用工具(Code->ReformateCode... 查看详情
2018-2019-220175303实验三敏捷开发与xp实践《java开发环境的熟悉》实验报告(代码片段)
2018-2019-220175303实验三敏捷开发与XP实践《Java开发环境的熟悉》实验报告实验报告封面课程:Java程序设计班级:1753姓名:柴轩达学号:20175303指导教师:娄嘉鹏实验日期:2019年4月29日-5月2日实验序号:3实验名称:敏捷开发与XP实... 查看详情
实验三《敏捷开发与xp实践》20155335俞昆
实验三实验三敏捷开发与XP实践实验内容1.XP基础2.XP核心实践3.相关工具实验要求1.没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》课程2.完成实验、撰写实验报告,实验报告以博客方式发表在博客园,注意... 查看详情
20165201实验三敏捷开发与xp实践(代码片段)
##20165201实验三敏捷开发与XP实践敏捷开发与XP实践-1实验目的与要求:http://www.cnblogs.com/rocedu/p/4795776.html,Eclipse的内容替换成IDEA参考http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD安装alibaba插件,解决代码中的规范问题。在IDEA中使... 查看详情
2017-2018-220165306实验三《敏捷开发与xp实践》实验报告(代码片段)
实验三《敏捷开发与XP实践》实验报告实验报告封面实验内容XP基础XP核心实践相关工具实验步骤(一)敏捷开发与XP实践-1实验要求:参考代码规范安装alibaba插件,解决代码中的规范问题。在IDEA中使用工具(Code->ReformateCode)... 查看详情
20175221曾祥杰实验三《敏捷开发与xp实践》(代码片段)
实验三《敏捷开发与XP实践》实验报告封面课程:Java程序设计班级:1752班姓名:曾祥杰学号:20175221指导教师:娄嘉鹏实验日期:2019年4月30日实验时间:13:45-15:25实验序号:21实验名称:敏捷开发与XP实践一.实验内容1.XP基础2.XP... 查看详情