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. GDOI2018 滑稽子图 [斯特林数,树形DP]

    传送门并没有 思路 见到那么小的\(k\)次方,又一次想到斯特林数. \[ ans=\sum_{T} f(T)^k = \sum_{i=0}^k i!S(k,i)\sum_{T} {f(T)\choo ...

  2. linux显示完整目录

    vim ~/.bashrc ##添加以下信息 export PS1='[\u@\h `pwd`]$ ' 然后保存退出 source  ~/.bashrc 或者关机重新启动即可

  3. μCUnit,微控制器的单元测试框架

    在MCU on Eclipse网站上看到Erich Styger在8月26日发布的博文,一篇关于微控制器单元测试的文章,有很高的参考价值,特将其翻译过来以备学习.原文网址:https://mcuone ...

  4. SpringBoot事务管理

    1.在UserMapper接口中添加更新和删除方法 package com.cppdy.mapper; import org.apache.ibatis.annotations.Delete; imp ...

  5. rbac(基于角色权限控制)-------权限管理

    权限管理 创建一个rbac和app的应用,这个rbac主要是用来存放权限的,全称叫做基于角色权限控制 一.先看配置文件合适不,给创建的rbac在配置文件里面设置一下 找到INSTALLED_APPS= ...

  6. LeetCode(69):x 的平方根

    Easy! 题目描述: 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: ...

  7. cf1107e uva10559区间dp升维

    /* 区间dp,为什么要升维? 因为若用dp[l][r]表示消去dp[l][r]的最大的分,那么显然状态转移方程dp[l][r]=max{dp[l+1][k-1]+(len[l]+len[k])^2+ ...

  8. HTML中body元素的属性

    body元素的属性 属性 描述 text 设定页面文字颜色 bgcolor 设定页面背景颜色 background 设定页面背景图像 bgproperties 设定页面的背景图像为固定状态(不随页面的 ...

  9. Spring-data-redis: serializer实例

    spring-data-redis提供了多种serializer策略,这对使用jedis的开发者而言,实在是非常便捷.sdr提供了4种内置的serializer: JdkSerializationRe ...

  10. jmeter IP欺骗功能

    使用过loadrunner的同学,应该都了解有个IP欺骗功能,jmeter遇到类似需求怎样实现呢? 环境:windows7,jdk1.8,jmeter3.1 使用IP欺骗功能前提是本地有多个可用IP, ...