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"项目,在该项目下创 ...
随机推荐
- docker:轻量级图形页面管理之Portainer
docker:轻量级图形页面管理之Portainer 原创甘兵2018-03-05 14:26:56评论(8)2586人阅读 1.介绍 docker 图形化管理提供了很多工具,有Portainer ...
- 执行composer install后报错:执行composer install后报错: d11wtq/boris v1.0.10 requires ext-pcntl * -> the requested PHP extension pcntl is missing from your system.
执行composer install后报错: d11wtq/boris v1.0.10 requires ext-pcntl * -> the requested PHP extension p ...
- 并发库应用之三 & 线程池与定时器应用
在TCP服务器编程模型的原理,每一个客户端连接用一个单独的线程为之服务,当与客户端的会话结束时,线程也就结束了,即每来一个客户端连接,服务器端就要创建一个新线程.如果访问服务器的客户端很多,那么服务器 ...
- go语言从零学起(三) -- chat实现的思考
要通过go实现一个应用场景: 1 建立一个websocket服务 2 维护在线用户的链接 3 推送消息和接受用户的操作 列出需求,很显然的想到了chat模型.于是研究了revel框架提供的sample ...
- Django分别使用Memcached和Redis作为缓存的配置(Linux环境)
1 使用memcached 1.1 安装memcached 安装(Linux) sudo apt install memcached 启动 #方式一: service memcached start ...
- Date时间格式比较大小
方法一: 两个Date类型的变量可以通过compareTo方法来比较.此方法的描述是这样的:如果参数 Date 等于此 Date,则返回值 0:如果此 Date 在 Date 参数之前,则返回小于 0 ...
- NandFlash、NorFlash、DataFlash、SDRAM释义
1. NandFlash和NorFlash Flash存储芯片,俗称闪存,因其具有非易失性.可擦除性.可重复编程及高密度.低功耗等特点,广泛地应用于手机.数码相机.笔记本电脑等产品. ...
- typora快捷键之速成笔记
使用心得:用起来相当的顺手,强烈推荐小伙伴使用该工具,内置快捷功能很贴心 工具下载: https://download.csdn.net/download/lele508994993/10392197 ...
- soj1166. Computer Transformat(dp + 大数相加)
1166. Computer Transformat Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description A sequenc ...
- HDU 2058 The sum problem 数学题
解题报告:可以说是一个纯数学题,要用到二元一次和二元二次解方程,我们假设[a,b]这个区间的所有的数的和是N,由此,我们可以得到以下公式: (b-a+1)*(a+b) / 2 = N;很显然,这是一个 ...