zoukankan      html  css  js  c++  java
  • 2017-2018-2 20165306 实验三《敏捷开发与XP实践》实验报告

    实验三《敏捷开发与XP实践》实验报告

    实验报告封面

    实验内容

    1. XP基础

    2. XP核心实践

    3. 相关工具

    实验步骤

    (一) 敏捷开发与XP实践-1

    实验要求:

    参考 代码规范 安装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));
    }
    }
    
    
    • IDEA中的插件,通过Jetbrains官方仓库安装:打开 Settings -> Plugins -> Browse repositories。在搜索框输入alibaba即可看到Alibaba Java Code Guidelines插件,点击Install进行安装,然后重启IDEA生效。

    • 在项目名称上单击右键,在弹出菜单上选择编码规约扫描。

    • 格式化后的代码截图:

    • 我认为 Code -> Move Line Down/Up 很好用,把光标放在某一行的任意位置,通过按 Shift+Alt+PgUp/PgDn ,上下移动该行。

    移动前运行结果截图:

    移动后运行结果截图:

    • 代码规范 知识点

    代码标准中很重要的一项是如何给包、类、变量、方法等标识符命名,能很好的命名可以让自己的代码立马上升一个档次。Java中的一般的命名规则有:

    - 要体现各自的含义
    - 包、类、变量用名词
    - 方法名用动宾
    - 包名全部小写,如:io,awt
    - 类名第一个字母要大写,如:HelloWorldApp
    - 变量名第一个字母要小写,如:userName
    - 方法名第一个字母要小写:setName
    

    标识符名字应当直观且可以拼读,可望文知意,不必进行“解码”,一般采用英文单词或其组合,便于记忆和阅读,切忌使用汉语拼音来命名,用词要准确例如“当前值”应该起名 currentValue ,写成 nowValue 就不准确了,但还凑合,写成 dqz (dang qian zhi 首字母)就是笑话了。

    标识符的长度 “min-length && max-information” 的原则,比如:maxVal maxValueUntilOverflow 要好些,可以通过去元音法把变量名变短,如 returnValue-> rtnValmessage -> msg ;一般全局变量用具有说明性的名字,局部变量用短名字:单字符的名字,常见的如 ijk 等用作局部变量。

    (二) 敏捷开发与XP实践-2

    实验要求:

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

    • 把自己的学习搭档加入自己的项目中, 管理-> 项目成员管理 -> 开发者

    • 添加JUnit单元测试用例

    20165306添加ComplexTest

    (三) 敏捷开发与XP实践-3

    实验要求:

    完成重构内容的练习,下载搭档的代码,至少进行三项重构,提交重构后代码的截图,加上自己的学号水印。提交搭档的码云项目链接。

    • 重构 知识点:

    重构(Refactor),就是在不改变软件外部行为的基础上,改变软件内部的结构,使其更加易于阅读、易于维护和易于变更 。重构中一个非常关键的前提就是“不改变软件外部行为”,它保证了我们在重构原有系统的同时,不会为原系统带来新的BUG,以确保重构的安全。

    一个完整的重构流程包括:

    - 从版本控制系统代码库中Check out code
    - 读懂代码(包括测试代码)
    - 发现bad smell
    - Refactoring
    - 运行所有的Unit Tests
    - 往代码库中Check in code
    
    • Extract Method提炼出重复的代码,然后让这两个地点都调用被提炼出来的那一段代码。

    • 为避免两个互为兄弟(sibling)的subclasses内含有相同表达式,只需要对两个classes都使用Extract Method,然后再对被提炼出的代码使用Pull Up Method,将它推入superclass内。

    • 如果代码之间只是类似,并非完全相同,那么就得运用Extract Method将相似部分和差异部分割开,构成单独一个方法。然后你可能发现或许可以运用Form Template Method获得一个Template Method设计模式。

    • 如果有些方法以不同的算法做相同的事,你可以择定其中较清晰的一个,并使用Substitute Algorithm将其它方法的算法替换掉。

    • 如果两个毫不相关的classes内出现Duplicaded Code,你应该考虑对其中一个使用Extract Class,将重复代码提炼到一个独立class中,然后在另一个class内使用这个新class。但是,重复代码所在的方法也可能的确只应该属于某个class,另一个class只能调用它,抑或这个方法可能属于第三个class,而另两个classes应该引用这第三个class。你必须决定这个方法放在哪儿最合适,并确保它被安置后就不会再在其它任何地方出现。

    • 重构fenshu

    (四) 敏捷开发与XP实践-4

    实验要求:

    参考Java 密码学算法,以结对的方式完成Java密码学相关内容的学习,结合重构,git,代码标准。提交学习成果码云链接和代表性成果截图,要有学号水印。

    • Java对称加密-DES算法:对称密钥的生成和保存

    以字节保存在文件中:

    • Java对称加密-DES算法:使用对称密钥进行加密和解密

    输入是以对象方式保存在文件key1.dat中的密钥,以及需要加密的一段最简单的字符串"Hello World!",使用密钥对"Hello World!"进行加密,加密后的信息保存在文件中。

    • Java对称加密-DES算法:运行程序

    当前目录下必须有前面生成的密钥文件keykb1.dat,以及密文文件SEnc.dat。输入java SDec运行程序,将输出明文字符串“Hello World!”。

    需求分析:

    步骤 耗时 百分比
    需求分析 15分钟 7%
    设计 100分钟 48%
    代码实现 35分钟 17%
    测试 30分钟 14%
    分析总结 30分钟 14%
  • 相关阅读:
    Sql server时间转时间long
    SQL Server死锁问题:事务(进程 ID x)与另一个进程被死锁在 锁 | 通信缓冲区资源上并且已被选作死锁牺牲品。请重新运行该事务。
    layui jquery ajax,url,type,async,dataType,data
    在 Postman 中报错:Self-signed SSL certificates are being blocked 的分析与解决
    SQL server CASE WHEN
    SQL server 统计分组经计
    Spring boot @Transactional
    基于mysql的sakila数据库脚本分析
    常用数据库JDBC
    在做银行支付接口案例的时候,遇到的编码问题!
  • 原文地址:https://www.cnblogs.com/5306xyh/p/8976370.html
Copyright © 2011-2022 走看看