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等一系列的代码问题:

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

  1. import java.util.*;
  2. class A {
  3. void panDuan(long n) {
  4. long m = n;
  5. int i = 0;
  6. int flag = 1;
  7. int count = 0;
  8. long[] a;
  9. a = new long[10];
  10. while (n != 0) {
  11. a[count] = n % 10;
  12. n /= 10;
  13. count++;//count计算的是n的位数
  14. }
  15. for ( i = 0; i < count / 2; i++) {
  16. if (a[i] != a[count - 1 - i]) {
  17. System.out.printf("a[%d]≠a[%d]\n",count-i-1,i);
  18. flag = 0;
  19. break;
  20. }
  21. }
  22. if (flag==1)
  23. System.out.println(m+"是回文数");
  24. else
  25. System.out.println(m+"不是回文数");
  26. }
  27. }
  28. public class HuiWen {
  29. public static void main(String[] args) {
  30. A a = new A();
  31. System.out.println("请输入一个数字:");
  32. Scanner reader = new Scanner(System.in);
  33. long n = reader.nextLong();
  34. if(n>=999999999)
  35. System.exit(0);
  36. else
  37. a.panDuan(n);
  38. }
  39. }

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

  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. Bootstrap 固定底部导航栏菜单

    直接上代码: <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" ...

  2. 5)django-模板

    django模板显示页面 一:语法使用 1)变量:{{变量名}}         2)for循环            {% for row in userlist%}                 ...

  3. 轻松搞懂elasticsearch概念

      本文主要介绍elasticsearch6.0的一些基本概念,有助于深入理解.研究elasticsearch和elk系统 一图胜千言 elasticsearch与mysql参照来看 添加一条数据 紫 ...

  4. Confluence 6 如何备份存储文件和页面信息

    备份的 ZIP 文件包含有 entities.xml,这个 XML 文件包含有 Confluence 的所有页面内容和存储附件的目录. 备份 Zip 文件结构 页面的附件是存储在附件存储目录中的,通过 ...

  5. input,select默认颜色修改

    input::-webkit-input-placeholder{color: #7f7f7f;} select{color: #7f7f7f} option{color: #7f7f7f;}

  6. 1283: 骨牌铺方格(zzuli)

    Problem Description 在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数.例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图: Input ...

  7. laravel 中with关联查询限定查询字段

    学习了下laravel5.6框架,果然很优雅,比如ActiveJieSuan model中作如下关联:(laravel模型关联关系可以查看https://laravelacademy.org/post ...

  8. 如何编辑PDF文件,怎么使用PDF裁剪页面工具

    在编辑PDF文件的时候,往往会有很多的小技巧可以使用,在编辑PDF文件的时候,怎么对文件的页面进行裁剪呢,不会的话,看看下面的文章吧,小编已经为大家整理好了哦. 1.打开运行PDF编辑器,在编辑器中打 ...

  9. C#概念总结(五)

    1.C#特性 (Attribute) 特性适用于在运行时传递程序中的各中元素(比如 类.方法.结构.枚举.组件)的行为信息额声明性标签,可以通过使用特性向程序添加声明性信息,一个声明标签是通过放置在他 ...

  10. java----javaBean

    Beanutils 工具类的下载 http://commons.apache.org/proper/commons-beanutils/ 使用 应用的时候还需要一个logging包http://com ...