20165235 实验三 敏捷开发与XP实践

主目录:

  • 姓名:祁瑛
  • 学号:20165235
  • 班级:1652
  • 实验课程:JAVA程序设计
  • 实验名称:Java面向对象程序设计
  • 实验时间:2018.4.30
  • 指导老师:娄家鹏

敏捷开发与XP实践-1

任务1在IDEA中使用工具(Code->Reformate Code)

在IEDA的code菜单栏中有很多的工具,如下:

  1. surround with是自动将if-elsefor等语句进行包装起来。快捷键:Ctrl+Alt+T
  2. Insert Live Template是加入一些语句模板,快捷键: Ctrl+j

    3. Override Methods 重写基类的方法 ,快捷键: Ctrl+O
  3. Implement Methods 实现基类或接口中的方法,快捷键: Ctrl+I
  4. Override Methods… 重写基类的方法,快捷键:Ctrl+O
  5. Unwrap/Remove 去除相关的包装代码,快捷键:Ctrl+Shift+Delete

    点击上菜单栏code--->surround withif-else语句进行包装:





    点击上菜单栏code->Insert Live Template进行添加语句:

代码的书写规范标准中很重要的一项是如何给包、类、变量、方法等标识符命名,能很好的命名可以让自己的代码立马上升一个档次。Java中的一般的命名规则有:
  • 要体现各自的含义
  • 包、类、变量用名词
  • 方法名用动宾
  • 包名全部小写,如:ioawt
  • 类名第一个字母要大写,如:HelloWorldApp
  • 变量名第一个字母要小写,如:userName
  • 方法名第一个字母要小写:setName

任务2 :下载alibaba插件解决代码规范问题

  • 对代码给定的代码并对代码进行编码规约扫描:



    对以上提出的没有使用{}if-else包装的问题通过code->surround with进行操作,结果图如下:

[敏捷开发与XP实践-2]

任务一:在unbuntu上下载搭档码云中的Complex代码并加入测试用例,然后git到搭档到码云。

首先是clone搭档的码云代码:git clone [搭档码云链接],然后通过cd命令进入搭档代码目录改相应的文件,如本次实验的Complex.javaComplexTest.java,然后git add Complex.javagit add ComplexTest.java。之后git -a -m“20165235 相应的内容”如下图:

可以通过git status来查看当前的状态,之后git push就可以了,输入自己码云用户名和密码。结果如图:

这个是我自己的命令行输入git log来查看自己的代码提交记录:

这是我搭档电脑中的git log记录

在搭档的码云中查看结果:

在IEDA中进行git

将写好的代码进行add,然后添加注释,点击左下方commit and push

选择push

出现push successful 说明git成功:

[敏捷开发与XP实践-3]

代码规范对学习编程很重要,剔除代码中不规范的命名,程序bug等一系列的代码问题:

如下是我在我搭档的码云中下载的代码:

import java.util.*;
class A {
void panDuan(long n) {
long m = n;
int i = 0;
int flag = 1;
int count = 0;
long[] a;
a = new long[10];
while (n != 0) {
a[count] = n % 10;
n /= 10;
count++;//count计算的是n的位数
}
for ( i = 0; i < count / 2; i++) {
if (a[i] != a[count - 1 - i]) {
System.out.printf("a[%d]≠a[%d]\n",count-i-1,i);
flag = 0;
break;
}
}
if (flag==1)
System.out.println(m+"是回文数");
else
System.out.println(m+"不是回文数");
}
}
public class HuiWen { public static void main(String[] args) {
A a = new A();
System.out.println("请输入一个数字:");
Scanner reader = new Scanner(System.in);
long n = reader.nextLong();
if(n>=999999999)
System.exit(0);
else
a.panDuan(n);
}
}

通过编码规范扫描,发现三处错误:

  1. 类名不符合命名规则

    2.没有对if-else进行包装

    3.方法不符合命名规则

    并对其进行重构:

Refactor->Extrac->Field对文件名(类名)进行修改,重构之后的代码:



[敏捷开发与XP实践-4]

以结队的方式进行java密码编程

任务一

在本次任务中我们选择了Caesar密码我进行了产品代码编写和测试用例代码编写,搭档对本次代码进行了调试和重构。如下是产品代码进行重构之后的截图:







对本次代码重构了三项:

  • 修复了输入为非a-z字符的bug(返回error)
  • 类名不符合命名规则
  • 没有对if-else进行封装

    这是对产品代码进行的Junit测试:

-代码链接

[实验中遇到的问题以及解决方法]

  • 问题1:在IEDA中git clone搭档代码时缺少git.exe文件

  • 解决方式:首先进入官网下载---git.exe下载地址,然后打开setting搜索git,在path to git中设置git.exe的路径,然后点击ok。如图:

  • 问题2 :在合作完成Caeser密码时,出现边界问题:password是1,输入密文abc时结果为” ab“,加密也同样。

  • 解决方式:我参考了C语言编写的代码之后对加解密进行了改进:加密为:'a'+(c[i]-'a'+ password)%26 解密为:'z'-('z'+password-c[i])%26 。这就很好的解决了边界值问题。

[实验总结]

本此实验是要求我们掌握代码重构,规范的代码才能使我们对代码内容一目了然,alibaba这款插件通过编码规范扫描,清楚的了解到自己的代码问题。在结队编程中使用git来修改搭档代码中的bug等问题(在修改之后一定要保证代码是可以运行的)。最后是通过java来实现密码算法,这次我选择了简单的Caeser密码,因为对其他密码算法了解的不够深,以后还得好好学习其他密码算法。

步骤 耗时 百分比
需求分析 20min 8%
设计 60min 25%
代码实现 120min 50%
测试 10min 4%
分析总结 30min 13%

20165235 实验三 敏捷开发与XP实践的更多相关文章

  1. 20145213《Java程序设计》实验三敏捷开发与XP实践

    20145213<Java程序设计>实验三敏捷开发与XP实践 实验要求 1.XP基础 2.XP核心实践 3.相关工具 实验内容 1.敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法 ...

  2. 20145308刘昊阳 《Java程序设计》实验三 敏捷开发与XP实践 实验报告

    20145308刘昊阳 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 实验名称 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 统计的PSP(Personal ...

  3. JAVA课程实验报告 实验三 敏捷开发与XP实践

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计  班级:1353  姓名:韩玉琪  学号:20135317 成绩:             指导教师:娄嘉 ...

  4. 20145225《Java程序设计》 实验三 "敏捷开发与XP实践"

    20145225<Java程序设计> 实验三 "敏捷开发与XP实践" 实验报告 实验内容 使用 git 上传代码 使用 git 相互更改代码 实现代码的重载 git 上 ...

  5. 20145215实验三 敏捷开发与XP实践

    20145215实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验步骤 (一)敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法应用到软件的开发.运营和维护上的过程.软 ...

  6. 20145325张梓靖 实验三 "敏捷开发与XP实践"

    20145325张梓靖 实验三 "敏捷开发与XP实践" 程序设计过程 实验内容 使用 git 上传代码 git上传中遇到的问题 使用 git 相互更改代码 实现代码的重构 git ...

  7. 20162311 实验三 敏捷开发与XP实践 实验报告

    20162311 实验三 敏捷开发与XP实践 实验报告 实验内容 一.研究学习IDEA中的Code菜单 使用Code ->Reformate Code功能将以下代码格式化 public clas ...

  8. 2018-2019-20175205 实验三敏捷开发与XP实践《Java开发环境的熟悉》实验报告

    2018-2019-20175205 实验三敏捷开发与XP实践<Java开发环境的熟悉>实验报告 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)>&l ...

  9. 20175314 实验三 敏捷开发与XP实践

    20175314 实验二 Java面向对象程序设计 一.实验内容 XP基础 XP核心实践 相关工具 二.实验步骤 (一)代码格式化 创建"175314.exp3"项目,在该项目下创 ...

随机推荐

  1. VI编辑器、ipython、jupyter及进程知识总结

    一.VI编辑器 1.三种模式 一般模式(normal mode 默认) 插入模式(insert mode) 末行模式(last line mode) 2.模式切换 一般模式-------------- ...

  2. 8)django-示例(url传递参数)

    url传递参数有两种,一个是通过普通分组方式,一个是通过带命名分组方式 1.传递方式 1)普通分组方式,传递参数顺序是严格的.如下例子 url(r'^detail-(\d+)-(\d+).html', ...

  3. Python 队列

    import multiprocessing import time if __name__ == '__main__': # 创建消息队列 # 3: 表示消息队列最大个数 queue = multi ...

  4. Linux平台 Oracle 18c RAC安装

    Linux平台 Oracle 18c RAC安装Part1:准备工作 2018-08-04 22:20 by AlfredZhao, 1065 阅读, 0 评论, 收藏, 编辑 一.实施前期准备工作 ...

  5. linux命令tar压缩解压

    tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的 ...

  6. C#一元二次方程

  7. 信息摘要算法之五:HMAC算法分析与实现

    MAC(Message Authentication Code,消息认证码算法)是含有密钥散列函数算法,兼容了MD和SHA算法的特性,并在此基础上加上了密钥.因此MAC算法也经常被称作HMAC算法. ...

  8. Confluence 6 数据库表-内容(Content)

    这部分的内容描述了有关 Confluence 存储内容所使用的表格.内容是用户在 Confluence 存储和分享的信息. attachmentdata 附件文件的二进制数据.当 Confluence ...

  9. IOS 命令行工具开发

    例子  我们需要查看手机APP里面的某个应用的架构 新建一个Single View App 的ios项目 ToolCL 然后在 main函数中加入以下代码 // // main.m // ToolCL ...

  10. Feign服务消费者

    Feign的优点:面向接口,完全不用管实现,传入规定格式的数据就可以了 搭建消费者项目(FeignDemo) 1.创建pom.xml <project xmlns="http://ma ...