20165235 实验三 敏捷开发与XP实践
20165235 实验三 敏捷开发与XP实践
主目录:
- 姓名:祁瑛
- 学号:20165235
- 班级:1652
- 实验课程:JAVA程序设计
- 实验名称:Java面向对象程序设计
- 实验时间:2018.4.30
- 指导老师:娄家鹏
敏捷开发与XP实践-1
任务1在IDEA中使用工具(Code->Reformate Code)
在IEDA的code菜单栏中有很多的工具,如下:
surround with
是自动将if-else
,for
等语句进行包装起来。快捷键:Ctrl+Alt+T
Insert Live Template
是加入一些语句模板,快捷键:Ctrl+j
3.Override Methods
重写基类的方法 ,快捷键:Ctrl+O
Implement Methods
实现基类或接口中的方法,快捷键:Ctrl+I
Override Methods
… 重写基类的方法,快捷键:Ctrl+O
Unwrap/Remove
去除相关的包装代码,快捷键:Ctrl+Shift+Delete
点击上菜单栏code--->surround with
对if-else
语句进行包装:
点击上菜单栏code->Insert Live Template
进行添加语句:
代码的书写规范标准中很重要的一项是如何给包、类、变量、方法等标识符命名,能很好的命名可以让自己的代码立马上升一个档次。Java中的一般的命名规则有:
- 要体现各自的含义
- 包、类、变量用名词
- 方法名用动宾
- 包名全部小写,如:
io
,awt
- 类名第一个字母要大写,如:
HelloWorldApp
- 变量名第一个字母要小写,如:
userName
- 方法名第一个字母要小写:
setName
任务2 :下载alibaba
插件解决代码规范问题
- 对代码给定的代码并对代码进行编码规约扫描:
对以上提出的没有使用{}
将if-else
包装的问题通过code->surround with
进行操作,结果图如下:
[敏捷开发与XP实践-2]
任务一:在unbuntu
上下载搭档码云中的Complex
代码并加入测试用例,然后git到搭档到码云。
首先是clone
搭档的码云代码:git clone [搭档码云链接]
,然后通过cd
命令进入搭档代码目录改相应的文件,如本次实验的Complex.java
和ComplexTest.java
,然后git add Complex.java
和git 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);
}
}
通过编码规范扫描,发现三处错误:
- 类名不符合命名规则
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实践的更多相关文章
- 20145213《Java程序设计》实验三敏捷开发与XP实践
20145213<Java程序设计>实验三敏捷开发与XP实践 实验要求 1.XP基础 2.XP核心实践 3.相关工具 实验内容 1.敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法 ...
- 20145308刘昊阳 《Java程序设计》实验三 敏捷开发与XP实践 实验报告
20145308刘昊阳 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 实验名称 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 统计的PSP(Personal ...
- JAVA课程实验报告 实验三 敏捷开发与XP实践
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序设计 班级:1353 姓名:韩玉琪 学号:20135317 成绩: 指导教师:娄嘉 ...
- 20145225《Java程序设计》 实验三 "敏捷开发与XP实践"
20145225<Java程序设计> 实验三 "敏捷开发与XP实践" 实验报告 实验内容 使用 git 上传代码 使用 git 相互更改代码 实现代码的重载 git 上 ...
- 20145215实验三 敏捷开发与XP实践
20145215实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验步骤 (一)敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法应用到软件的开发.运营和维护上的过程.软 ...
- 20145325张梓靖 实验三 "敏捷开发与XP实践"
20145325张梓靖 实验三 "敏捷开发与XP实践" 程序设计过程 实验内容 使用 git 上传代码 git上传中遇到的问题 使用 git 相互更改代码 实现代码的重构 git ...
- 20162311 实验三 敏捷开发与XP实践 实验报告
20162311 实验三 敏捷开发与XP实践 实验报告 实验内容 一.研究学习IDEA中的Code菜单 使用Code ->Reformate Code功能将以下代码格式化 public clas ...
- 2018-2019-20175205 实验三敏捷开发与XP实践《Java开发环境的熟悉》实验报告
2018-2019-20175205 实验三敏捷开发与XP实践<Java开发环境的熟悉>实验报告 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)>&l ...
- 20175314 实验三 敏捷开发与XP实践
20175314 实验二 Java面向对象程序设计 一.实验内容 XP基础 XP核心实践 相关工具 二.实验步骤 (一)代码格式化 创建"175314.exp3"项目,在该项目下创 ...
随机推荐
- LuoGu P2783 有机化学之神偶尔会做作弊
题目传送门 人生第一道黑题呢,虽然这题是黑题中的水题并且我调了一整节课,但是我还是很兴奋啊.毕竟人生第一道黑题啊 这个题根据题意,先把整个图进行tarjan缩点,建出一棵树,对于每一组询问,两点之间的 ...
- python 列表,字典,元组,字符串,常用函数
飞机票 一.列表方法 1.ls.extend(object) 向列表ls中插入object中的每个元素,object可以是字符串,元组和列表(字符串“abc”中包含3个元组),相当于ls和object ...
- Oracle11g 启动数据库实例、关闭数据库实例
Oracle11g 启动数据库实例 startup 1: nomount 模式: 描述: 该模式只会创建实例(即:创建oracle 实例的各种内存结构和 ...
- Confluence 6 编辑站点欢迎消息
通过编辑欢迎信息能够为你站点的主页面添加一些个人信息. 站点的欢迎信息显示在站点主面板的右侧,这是你对站点添加声明,连接,有关你项目组美好回忆照片的完美位置. 你需要 Confluence 管理员权限 ...
- java多线程快速入门(二十一)
CountDownLatch(闭锁)计数器 有一个任务A,它要等待其他4个任务执行完毕之后才执行,此时就可以利用CountDownLatch来实现这种功能 package com.cppdy; imp ...
- LeetCode(116):填充同一层的兄弟节点
Medium! 题目描述: 给定一个二叉树 struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *n ...
- 网络编程—udp
一.ip地址 1. 什么是地址 地址就是用来标记地点的 2. ip地址的作用 ip地址:用来在网络中标记一台电脑,比如192.168.1.1:在本地局域网上是唯一的. 3. ip地址的分类 每一个IP ...
- noip 2018游记
憋了好久的游记... 考虑到写游记是oi界的传统,所以还是应该写一篇的. day0: 上午9:30的火车出发,车上颓三国杀! 中午12:00到了大连,下午2:00才开始试机,还是得先去大连大学,在食堂 ...
- PyCharm设置字体风格
设置字体风格:File—Setting—Editor-Color Scheme-Color Scheme Font-把Scheme设置为:WarmNeon
- Python元组(tuple)
元组(tuple)是Python中另一个重要的序列结构,与列表类型,也是由一系列按特定顺序排列的元素组成,但是他是不可变序列.在形式上元组的所有元素都放在"()"中,两个元素使用& ...