20165203 实验三 敏捷开发与XP实践
20165203 实验三 敏捷开发与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->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能。提交截图,加上自己学号水印。
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());
if(buffer.capacity()<20)
buffer.append("1234567");
for(int i=0; i<buffer.length();i++)
System.out.println(buffer.charAt(i));
}
}
2.实验过程:
(1)学习了娄老师的博客,以下几点很重要:
①编程标准包含:具有说明性的名字、清晰的表达式、直截了当的控制流、可读的代码和注释,以及在追求这些内容时一致地使用某些规则和惯用法的重要性。
②Java中的一般的命名规则有:
- 要体现各自的含义
- 包、类、变量用名词
- 方法名用动宾
- 包名全部小写,如:io,awt
- 类名第一个字母要大写,如:HelloWorldApp
- 变量名第一个字母要小写,如:userName
- 方法名第一个字母要小写:setName
- ...
(2)IDEA的Code菜单学习:
Code菜单中内容颇为丰富,而且很多功能都可以通过快捷键实现,大大方便了我们编程。
Code菜单截图如图所示:

自认为比较常用的功能:
Override Methods(Ctrl+O):重载基本类的方法。(起初,自己特意到扇贝单词查了这个短语的意思,为“覆盖方法”,自己猜到应该是“重载方法”,又尝试了一下,结果验证正确)

Implent Method(Ctrl+l):编写当前类implements的接口方法Generate(Alt+Insert):创建所选中字段的getter与setter方法

Surround With(Ctrl+Alt+T):使用语句包装代码段,例如if-else,try-catch,do-while等

Unwrap\Remove:移除本类中所有代码段。Comment with Line Comment:注释所选代码行

Comment with Block Comment:在光标所在位置插入注释。

Reformat Code:将代码按格式缩进字符。
任务二:
在码云上把自己的学习搭档加入自己的项目中,确认搭档的项目加入自己后,下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例,测试成功后git add .; git commit -m "自己学号 添加内容";git push;
提交搭档项目git log的截图,包含上面git commit的信息,并加上自己的学号水印信息。
搭档的Complex代码:

搭档的Complex测试码:

任务三:
学习(http://www.cnblogs.com/rocedu/p/4795776.html), Eclipse的内容替换成IDEA
完成重构内容的练习,下载搭档的代码,至少进行三项重构,提交重构后代码的截图,加上自己的学号水印。提交搭档的码云项目链接。
看了娄老师给的教程后,Refactor的功能很丰富,它帮我们规范了代码,使代码更易懂,更上升了一个档次。
搭档的代码如下:

搭档代码出现的问题:
Student类中封装不明显。- 主类的名字不符合命名规则。
- 主类中的输出语句不符合DRY规则。
修改后如下:

任务四:
参考 http://www.cnblogs.com/rocedu/p/6683948.html,以结对的方式完成Java密码学相关内容的学习,结合重构,git,代码标准。
提交学习成果码云链接和代表性成果截图,要有学号水印。
我们选择的是凯撒密码:
我们的分工是我负责加密部分,搭档负责解密部分。
加密部分的伪代码如下:
输入明文
输入密钥
进行移位转换
输出密文
我根据伪代码写出产品代码:
import java.util.Scanner;
public class CaesarE {
public static void main(String[] args) {
System.out.print("请输入明文:");
Scanner a=new Scanner(System.in);
String b=a.nextLine();
System.out.print("请输入秘钥:");
Scanner c=new Scanner(System.in);
int key=c.nextInt();
Encrypt(b, key);
}
public static void Encrypt(String str,int k){
String s="";
for (int i = 0; i < str.length(); i++) {
char c=str.charAt(i);
if(c>='a'&&c<='z'){
c+=k%26;
if(c<'a')
c+=26;
if(c>'z')
c-=26;
}else if(c>='A'&&c<='Z'){
c+=k%26;
if(c<'A')
c+=26;
if(c>'Z')
c-=26;
}
s+=c;
}
System.out.println(str+" 加密为: "+s);
}
}
我和搭档的产品代码运行结果如下:


实验过程中遇到的问题:
Q1:在学习任务一时,在打开Code时,菜单里的许多项都不认识,感觉无从下手。
A1:
法一:
我在扇贝单词中查询单词意思,然后再猜一下。
比如,对于override Methods,经过查询为覆盖方法,自然就为重载类的基本方法了。

法二:
就是尝试点击,看看会出什么结果,根据结果推出作用,典型的就为Surround With,尝试点击,出现如图所示结果:
自然就是用if-else try-catch do-while等包装代码段了。

Q2:在IDEA中,一开始没有找到在Elicpes中的Generate toString()。
A2:后来,自己在Code中的Generate中也发现了toString(),也可以用的。

实验体会
本次实验给了我和搭档充足的合作机会,我们体会了一次比较大的合作,的确,人多力量大,众人拾柴火焰高,这些都让我们体会到了结对编程的意义,
| 步骤 | 耗时 | 百分比 |
|---|---|---|
| 需求分析 | 12min | 10% |
| 设计 | 10min | 8% |
| 代码实现 | 48min | 40% |
| 测试 | 40min | 34% |
| 分析总结 | 10min | 8% |
20165203 实验三 敏捷开发与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"项目,在该项目下创 ...
随机推荐
- Rstudio常用快捷键
多行注释 ctrl+shift+c 运行单行或选中代码 ctrl+enter 查看帮助 F1
- vue全局组件和局部组件
1.全局注册组件 Vue.componet('name',{ template:'<div></div>', data(){ retrun {} } }) 使用了以上这种方式注 ...
- Mac 远程连接windows桌面工具parallels client
https://www.cnblogs.com/cssfirefly/p/9644940.html Parallels Client 客户端是免费,App Store 直接下载 复制文件:用共享文件夹 ...
- clock()、time()、clock_gettime()和gettimeofday()函数的用法和区别
1. clock_gettime( ) 提供了纳秒的精确度 int clock_gettime(clockid_t clk_id, struct timespect *tp); clockid_t c ...
- element ui 栅格布局
<el-row> <el-col :span="24"><div class="grid-content bg-purple-dark&qu ...
- 使用spring boot访问mongodb数据库
一. spring boot中传参的方法 1.自动化配置 spring Boot 对于开发人员最大的好处在于可以对 Spring 应用进行自动配置.Spring Boot 会根据应用中声明的第三方依赖 ...
- 优先队列:POJ No 3614 Sunscreen 贪心
Sunscreen Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6410 Accepted: 2239 Descrip ...
- Jenkins maven 构建乱码,修改file.encoding系统变量编码为UTF-8
一切都是windows的控制台默认编码GBK问题 情景: 使用jenkins构建,console 输出的中文乱码.代码编码格式是utf-8,因为Jenkins会默认读取当前系统的编码格式,导致构建日志 ...
- Django 2.0.1 官方文档翻译: 高级教程:如何编写可重用的app (page 13)
高级教程:如何编写可重用的app (page 13) 本节教程上接第七部分(Page 12).我们会把我们的 web-poll应用转换成一个独立的python包,你可以在新的项目中重用或者把它分享给其 ...
- [转]extern与头文件(*.h)的区别和联系
用#include可以包含其他头文件中变量.函数的声明,为什么还要extern关键字? 如果我想引用一个全局变量或函数a,我只要直接在源文件中包含#include<xxx.h> (xxx. ...