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实践》实验报告的更多相关文章

  1. 20145308刘昊阳 《Java程序设计》实验三 敏捷开发与XP实践 实验报告

    20145308刘昊阳 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 实验名称 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 统计的PSP(Personal ...

  2. 20162311 实验三 敏捷开发与XP实践 实验报告

    20162311 实验三 敏捷开发与XP实践 实验报告 实验内容 一.研究学习IDEA中的Code菜单 使用Code ->Reformate Code功能将以下代码格式化 public clas ...

  3. 20165308实验三 敏捷开发与XP实践实验报告

    实验三 敏捷开发与XP实践实验报告 实验目的 安装 alibaba 插件,解决代码中的规范问题.再研究一下Code菜单,找出一项让自己感觉最好用的功能. 在码云上把自己的学习搭档加入自己的项目中,确认 ...

  4. 20165230 《Java程序设计》实验三 敏捷开发与XP实践 实验报告

    20165230 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:田坤烨 学号:20165230 成绩: 指导教 ...

  5. 20155207王雪纯 《Java程序设计》实验三 敏捷开发与XP实践 实验报告

    20155207王雪纯 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 实验名称 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 统计的PSP(Personal ...

  6. 20155220 实验三 敏捷开发与XP实践 实验报告

    20155220 实验三 敏捷开发与XP实践 实验报告 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim ...

  7. # 20155224 实验三 敏捷开发与XP实践 实验报告

    20155224 实验三 敏捷开发与XP实践 实验报告 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim ...

  8. 20155226 实验三 敏捷开发与XP实践 实验报告

    20155226 实验三 敏捷开发与XP实践 实验报告 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim ...

  9. 20155311 实验三 敏捷开发与XP实践 实验报告

    20155311 实验三 敏捷开发与XP实践 实验报告 实验内容 XP基础 xp核心工具 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim ...

  10. 2016-2017-2 20155339 《Java面向对象程序设计》实验三敏捷开发与XP实践实验报告

    2016-2017-2 20155339 <Java面向对象程序设计>实验三敏捷开发与XP实践实验报告 实验内容 XP基础 XP核心实践 相关工具 实验内容 一.在IDEA中使用工具(Co ...

随机推荐

  1. spring boot在intellij idea下整合mybatis可能遇到的问题

    org.apache.ibatis.builder.BuilderException: Wrong namespace. Expected 'com.sc.starry_sky.dao.UserMap ...

  2. Eclipse发布的Dynamical web项目在Tomacat文件夹下显示

    Eclipse设置了Tomacat后,项目信息会在你的workspace上,在Tomacat文件夹上是没有的.但是通过设置是可以在Tomacat文件夹上存在的. 配置好服务器后,先关闭服务器,然后在E ...

  3. 采用DTO和DAO对JDBC程序进行进一步优化

    采用DTO和DAO对JDBC程序进行进一步优化 DTO:数据传输对象,主要用于远程调用等需要远程调用对象的地方DAO:数据访问对象,主要实现封装数据库的访问,通过它可以把数据库中的表转换成DTO类 引 ...

  4. MQ之如何做到消息幂等 (转 优秀)

    一.缘起 MQ消息必达,架构上有两个核心设计点: (1)消息落地 (2)消息超时.重传.确认 再次回顾消息总线核心架构,它由 发送端.服务端.固化存储.接收端 四大部分组成. 为保证消息的可达性,超时 ...

  5. ACK-Ackermann, 阿克曼函数

    以前好几次在学语言的使用都有实现这个ack函数的经历,今天读本算法书,偶尔又提到了这个,查了下wiki来头好大 Values of A(m, n) m\n 0 1 2 3 4 n 0 1 2 3 4 ...

  6. 回归JavaScript基础(一)

    主题:JavaScript简介. 一.JavaScript的起源 JavaScript诞生于1995年.当时,它的主要作用是处理一些输入验证操作.之前的话,都是把表单数据发送到服务器端,然后再去判断有 ...

  7. zabbix系列之八——安装后配置三Triggers

    1Triggers(触发器) 描述 详细 备注 术语描述 1)触发器是评估监控项采集的数据的逻辑表达式,代表了当前系统状态. 2)触发器可定义一个什么数据是可接受的阈值,因此,如果接收的数据超过了可接 ...

  8. 如何在Markdown文档中插入空格?

    简单说 在 Markdown 文档中,可以直接采用 HTML 标记插入空格(blank space),而且无需任何其他前缀或分隔符.具体如下所示: 插入一个空格 (non-breaking space ...

  9. Oracle EBS AR 更新客户账户层

    declare x_return_status ); x_msg_count NUMBER; x_msg_data ); x_profile_id NUMBER; l_location_id NUMB ...

  10. python入门の缩进魔术

    idx=1 sum=0 while idx<=100: sum=idx+sum idx=idx+1 print('sum 100 =', sum) ======================= ...