20175209 实验三《敏捷开发与XP实践》实验报告
20175209 实验三《敏捷开发与XP实践》实验报告
一、实验内容
- 编码标准:在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能。提交截图,加上自己学号水印。
- 搭档代码检验:在码云上把自己的学习搭档加入自己的项目中,确认搭档的项目加入自己后,下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例,测试成功后git add .; git commit -m "自己学号 添加内容";git push;
- 重构:完成重构内容的练习,下载搭档的代码,至少进行三项重构
- 以结对的方式完成Java密码学相关内容的学习,结合重构,git,代码标准。
二、实验步骤
1.编码标准
alibaba的下载:如图所示进行下载,下载好后重启IDEA即可

在要进行规范的目录右键选择 “编码规约扫描”开始扫描

规范前给出的不规范内容提示如下:

规范后的代码如下:

Code菜单中的一些功能
Surround With ( 生成包围代码 )快捷键: Ctrl + Alt +T

Comment with Line Comment(注释某一行)快捷键:Ctrl + /

Comment with Block Comment(注释某一段)快捷键:Ctrl + Shift + /

Move Statement Down ( 方法、代码下移 ) 快捷键:Ctrl + Shift + 向下箭头
Move Statement Up ( 方法、代码上移 )快捷键: Ctrl + Shift + 向上箭头
代码标准中很重要的一项是如何给包、类、变量、方法等标识符命名,Java中的一般的命名规则有:
- 要体现各自的含义
- 包、类、变量用名词
- 方法名用动宾
- 包名全部小写,如:io,awt
- 类名第一个字母要大写,如:
HelloWorldApp - 变量名第一个字母要小写,如:
userName - 方法名第一个字母要小写:
setName
2.测试搭档代码
权限获得
首先登陆伙伴的码云仓库,在管理中选择仓库成员管理,—>添加仓库成员—>邀请用户,将链接发给自己,自己登陆连接后点击同意即可

权限成功获得的截图如下

搭档代码如下:

对其中的所有方法均进行了测试
- 测试代码
import junit.framework.TestCase;
public class lzcComplexTest extends TestCase {
lzccomplex a = new lzccomplex(3.0, 4.0);
lzccomplex b = new lzccomplex(-2.0, -3.0);
public void testEquals() {
assertEquals(true, a.equals(a));
assertEquals(false, b.equals(a));
}
public void testToString() {
assertEquals("3.0 + 4.0i", a.toString());
assertEquals("-2.0 - 3.0i", b.toString());
}
public void testComplexAdd() {
assertEquals("1.0 + 1.0i",a.complexAdd(b).toString());
assertEquals("-4.0 - 6.0i",b.complexAdd(b).toString());
}
public void testComplexSub() {
assertEquals("5.0 + 7.0i",a.complexSub(b).toString());
assertEquals("0",b.complexSub(b).toString());
}
public void testComplexMulti() {
assertEquals("-7.0 + 24.0i",a.complexMulti(a).toString());
assertEquals("6.0 - 17.0i",a.complexMulti(b).toString());
}
public void testComplexDiv() {
assertEquals("1.0",a.complexDiv(a).toString());
}
}
测试结果

将测试好的代码上传至伙伴的码云


3.重构
重写方法加上@Override进行注解

在代码前添加创建者的相关信息

方法名、参数名、成员变量、局部变量都统一使用LowerCamelCase,必须遵从驼峰形式,重构前提示

重构后

4.Java密码学相关内容
- Java安全体系结构总共分为4个部分:
- JCA( Java Cryptography Architecture, Java加密体系结构):JCA提供基本的加密框架, 如证书、 数字签名、消息摘要和密钥对产生器。
- JCE( Java Cryptography Extension, Java加密扩展包): JCE在JCA的基础上作了扩展, 提供了各种加密算法、 消息摘要算法和密钥管理等功能。JCE的实现主要在javax.crypto包( 及其子包) 中
- JSSE( Java Secure Sockets Extension, Java安全套接字扩展包):JSSE提供了基于SSL( Secure Sockets Layer,安全套接字层) 的加密功能。 在网络的传输过程中, 信息会经过多个主机(很有可能其中一台就被窃听) , 最终传送给接收者, 这是不安全的。这种确保网络通信安全的服务就是由JSSE来提供的。
- JAAS( Java Authentication and Authentication Service, Java鉴别与安全服务):JAAS提供了在Java平台上进行用户身份鉴别的功能。
凯撒密码
对凯撒密码进行了验证,并对代码进行了重构
运行结果

重构后结果

Java对称加密—DES算法
- 密钥的产生


加密Hello World

对密文进行解密

Java非对称加密—RSA算法
公私钥的产生

加密Hello World

对密文进行解密

使用密钥协定创建共享密钥—DH算法
A和B分别产生自己的公钥和私钥

创建共享密钥

Java摘要算法—MD5

三、实验中遇到的问题
- 问题:在实现DH算法时,希望把用户A和B的产生的公钥和私钥分别存放至两个目录中,但实际上不能做到放至同一个包下,在out文件中运行时会自动存放至根目录下,无法真正实现博客中所说的个人用户的管理
四、码云链接
四、总结
本次实验主要目的是对以前写好的代码进行规范,在规范伙伴的的过程中体现出来很多自己在写代码时不严谨的地方,通过本次代码规范,让我对如何写好令人赏心悦目的代码有了更好的体会,相信自己以后会写出更多符合规范标准的代码
20175209 实验三《敏捷开发与XP实践》实验报告的更多相关文章
- 20145308刘昊阳 《Java程序设计》实验三 敏捷开发与XP实践 实验报告
20145308刘昊阳 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 实验名称 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 统计的PSP(Personal ...
- 20162311 实验三 敏捷开发与XP实践 实验报告
20162311 实验三 敏捷开发与XP实践 实验报告 实验内容 一.研究学习IDEA中的Code菜单 使用Code ->Reformate Code功能将以下代码格式化 public clas ...
- 20165308实验三 敏捷开发与XP实践实验报告
实验三 敏捷开发与XP实践实验报告 实验目的 安装 alibaba 插件,解决代码中的规范问题.再研究一下Code菜单,找出一项让自己感觉最好用的功能. 在码云上把自己的学习搭档加入自己的项目中,确认 ...
- 20165230 《Java程序设计》实验三 敏捷开发与XP实践 实验报告
20165230 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:田坤烨 学号:20165230 成绩: 指导教 ...
- 20155207王雪纯 《Java程序设计》实验三 敏捷开发与XP实践 实验报告
20155207王雪纯 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 实验名称 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 统计的PSP(Personal ...
- 20155220 实验三 敏捷开发与XP实践 实验报告
20155220 实验三 敏捷开发与XP实践 实验报告 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim ...
- # 20155224 实验三 敏捷开发与XP实践 实验报告
20155224 实验三 敏捷开发与XP实践 实验报告 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim ...
- 20155226 实验三 敏捷开发与XP实践 实验报告
20155226 实验三 敏捷开发与XP实践 实验报告 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim ...
- 20155311 实验三 敏捷开发与XP实践 实验报告
20155311 实验三 敏捷开发与XP实践 实验报告 实验内容 XP基础 xp核心工具 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim ...
- 2016-2017-2 20155339 《Java面向对象程序设计》实验三敏捷开发与XP实践实验报告
2016-2017-2 20155339 <Java面向对象程序设计>实验三敏捷开发与XP实践实验报告 实验内容 XP基础 XP核心实践 相关工具 实验内容 一.在IDEA中使用工具(Co ...
随机推荐
- java计算机二级笔记
java.applet.AppletAppletHTMLAppletextends Appletextends AppletprintinitcalendarCalendarCalendar 日历类J ...
- 求N的因子之和。
理论依据: 代码: /* 显然,数据够大的时候,数组要用 __int64 */ #include<iostream> #include<map> #include<cst ...
- linq中order by 和group by (含lambda表达式实现)以及综合案例
一.Linq应用场景 linq的语法通过System.Linq下面的Enumerable类提供支持,也就是说,只要是实现了IEnumerable<T>的对象都可以使用Linq的语法来查询. ...
- Spring Boot统一异常处理方案示例
一.异常处理的原则 1.调用方法的时候返回布尔值来代替返回null,这样可以 NullPointerException.由于空指针是java异常里最恶心的异常. 2. catch块里别不写代码.空ca ...
- Java反射拾遗
定义:Java反射机制可以让我们在编译期(Compile Time)之外的运行期(Runtime)检查类,接口,变量以及方法的信息.反射还可以让我们在运行期实例化对象,调用方法,通过调用get/set ...
- 网络编程: 基于TCP协议的socket, 实现一对一, 一对多通信
TCP协议 面向连接 可靠的 面向字节流形式的 tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端 TCP协议编码流程: 服务器端: 客户端 实例化对 ...
- sqlserver年月日转汉字大写
也是今天sql群里有人问,看起来这个问题挺简单,但是我不知道具体该怎么实现.百度了一把,找到一个高手贡献的答案,记一下. 参考链接 sql中转换中文日期 ------ 配合相关函数 ------ cr ...
- 为样式找到应用目标-CSS选择器
1,常用选择器:元素(标签/简单)选择器.ID选择器.类选择器.后代选择器(可以将类或者ID应用于它们的祖先,然后使用后代选择器来定位) 2,伪类:有时候,我们需要根据文档结构之外的其他条件对元素应用 ...
- JavaWEB SSH文件上传
一.提交表单的<form> method属性必须为post 并且添加enctype="multipart/form-data" 属性 前台: <td>上传 ...
- IntelliJ IDEA 2016 完美破解+汉化补丁
百度网盘下载地址:链接:https://pan.baidu.com/s/1cB6XY-N02eRKgGs1kzvqKQ 密码:6pse IntelliJ IDEA 2016是一款JAVA语言发开发工具 ...