20172319 2018.05.17-30
实验三 《敏捷开发与XP实践》 实验报告
课程名称:《程序设计与数据结构》
学生班级:1723班
学生姓名:唐才铭
学生学号:20172319
实验教师:王志强老师
课程助教:刘伟康、张旭升学长
实验时间:2018年5月17日——2018年5月30日
必修/选修:必修
目录
实验内容
- XP基础
- XP核心实践
- 相关工具
实验要求
- 没有Linux基础的同学建议先学习《Linux基础入门(新版)》和《Vim编辑器》课程
- 完成实验、撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等)。报告可以参考范飞龙老师的指导。
- 严禁抄袭,有该行为者实验成绩归零,并附加其他惩罚措施。
实验步骤
前期准备:
- 预先安装好IDEA
- 在IDEA中安装Alibaba插件
需求分析:
- 需要初步掌握单元测试和TDD;
- 需要理解并掌握Git的用法;
- 需要认识、了解IDEA中工具栏内的功能及相关用法;
- 需要认识、了解并掌握java密码学的相关知识。
代码实现及解释
本次实验一共分为四个提交点:
- 1.代码规范:
- 参考实验三 敏捷开发与XP实践 ,Eclipse的内容替换成IDEA;
- 参考Intellj IDEA 简易教程,安装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));
}
}
- 格式化后的代码及截图
package exp3;
/**
* Demo class
*
* @author 唐才铭
* @date 2018/5/16
*/
public class CodeStandard {public static void main(String [] args){
StringBuffer buffer = new StringBuffer();
int length = 20;
buffer.append('S');
buffer.append("tringBuffer");
System.out.println(buffer.charAt(1));
System.out.println(buffer.capacity());
System.out.println(buffer.indexOf("tring"));
String output = "buffer = " + buffer.toString();
System.out.println(output);
if(buffer.capacity()<length) {
buffer.append("1234567");
}
for(int i=0; i<buffer.length();i++) {
System.out.println(buffer.charAt(i));
}
}
}
-
自己感觉好用的功能:折叠
-
2.协同测试
-
在码云上把自己的学习搭档加入自己的项目中,确认搭档的项目加入自己后,下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例,测试成功后git add .; git commit -m "自己学号 添加内容";git push;
-
提交搭档项目git log的截图,包含上面git commit的信息,并加上自己的学号水印信息。
-
相关截图:
-
3.重构:
-
完成重构内容的练习,下载搭档的代码,至少进行三项重构,提交重构后代码的截图,加上自己的学号水印。提交搭档的码云项目链接。
-
相关截图:
-
重构内容: 类名,封装变量,方法。
- 4.密码学应用:
- 参考Java 密码学算法 ,以结对的方式完成Java密码学相关内容的学习,结合重构,git,代码标准。
- 提交学习成果码云链接和代表性成果截图,要有学号水印。
- 相关截图:
测试过程及遇到的问题
- 问题1:第四个提交点很模糊
- 解决:参考蓝墨云张昊然同学的提问及王志强老师的解答。
- 问题2:java密码学
- 解决:娄老师的博客其实算得上是很仔细的了,但文字过多,一看过就忘了,为了加深认知,自己去找了点资料,有助于理解。
密码学算法及应用(一)
密码学算法及应用(二)
密码学算法及应用(三)
分析总结
- 密码这东西有点复杂,个人对于此类东西不感兴趣,但接触更有利于学习。