• 2018-2019-2 20175303 实验三敏捷开发与XP实践《Java开发环境的熟悉》实验报告


    2018-2019-2 20175303 实验三敏捷开发与XP实践《Java开发环境的熟悉》实验报告

    实验报告封面

    课程:Java程序设计 班级:1753 姓名:柴轩达 学号:20175303

    指导教师:娄嘉鹏 实验日期:2019年4月29日-5月2日 实验序号:3

    实验名称:敏捷开发与XP实践

    实验步骤

    敏捷开发与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));
    }
    }
    
    • 安装alibaba插件
      • 打开settings->plugins
    • 使用代码规约扫描
      • 安装完成后重启IEDA即可使用代码规约扫描(在项目名称上单击右键,在弹出菜单上选择‘代码规约扫描’)
      • 对老师所给代码扫描后结果,出现下图内容,不规范的地方,有中文提示并且定位到了行,alibaba把问题分为block/critical/major三个等级,有些规则可以一键修复。
    • 代码出现的规范问题
      • 在if/else/for/while/do语句中必须使用大括号,即使只有一行代码也要用;
      • 不允许任何未定义的常量直接出现在代码中;
      • 所有类都必须添加创建者信息。
    • 修改后的代码
    /**
     * CodeStandard
     *
     * @author cxd20175303
     * @date 2019/4/29
     */
    public class CodeStandard {
        public static void main(String[] args) {
            StringBuffer buffer = new StringBuffer();
            int a = 20;
            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() < a) {
                buffer.append("1234567");
            }
            for (int i = 0; i < buffer.length(); i++) {
                System.out.println(buffer.charAt(i));
            }
        }
    }
    
    • 完成代码规约扫描后要使用Code->Reformat Code,快捷键Ctrl+Alt+L
    • 研究一下Code菜单,以下是Code菜单的各项功能
      • Override Methods ( 重写覆盖方法 ) Ctrl + O
      • Implements Methods ( 实现接口方法 ) Ctrl + I
      • Generate (产生指导,方法,或者测试类) Alt + Insert
      • Surround With (写进一个大括号) Ctrl + Alt + T
      • UNwarp/Remove (删除) Ctrl + Shift + Delete
      • Insert Live Template ( 选择Live Templates模板 ) Ctrl + J
      • Surround with Live Template ( 选择Live Templates模板 ) Ctrl + Alt + J
      • Comment with Line Comment ( 行注释 ) Ctrl + /
      • Comment with Block Comment ( 块注释 ) Ctrl + Shift + /
      • Reformat Code ( 格式化代码 ) Ctrl + Alt + L
      • Show Reformat File Dialog ( 弹出格式化弹框 ) Ctrl + Alt + Shift + L
      • Auto-Indent Lines (自动缩进行) Ctrl+Alt+I
      • Optimize Imports ( 去除未引用的包导入声明 ) Ctrl + Alt + O
      • Rearrange Code ( 重新整理代码 )
      • Move Statement Down (下移语句) Ctrl + Shift +向下箭头
      • Move Statement Up (上移语句) Ctrl + Shift + 向上箭头
      • Move Line Down (向下移动) Alt + Shift + 向下箭头
      • Move Line Up (向上移动) Alt + Shift + 向上箭头
    • 我感觉比较实用的功能
      • Surround With(写进一个大括号)Ctrl + Alt + T,这个功能能减少一些操作,可以直接生成想要的带有大括号的语句;
      • Reformat Code ( 格式化代码 ) Ctrl + Alt + L,这个功能能一键让代码看起来更舒服更易读;
      • 其他的功能感觉不是特别实用,或者一般我用不到。

    敏捷开发与XP实践-2

    实验要求

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

    • 在码云上把自己的学习搭档加入自己的项目中
    • 将搭档的代码克隆到本地
    • 创建测试类
    • git remote add+名称+搭档仓库链接 连接搭档仓库,然后上传,上传成功后,git log查看近两天的提交,但是为啥有红色……不太清楚

    敏捷开发与XP实践-3

    实验要求

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

    • 重构complex代码

      • 添加创建者信息
      • 给覆写方法加上@Override注解
      • 方法名,参数名,成员变量,局部变量都统一使用lowerCamelCase,遵从驼峰形式。
    • 重构后的代码及测试代码

    代码调试中的问题和解决过程

    • 问题1:第一块内容格式化老师所给代码的时候,给代码添加创建者信息,网上搜到的答案都不能消除规约扫描的major;
    • 问题1解决方案:后来参考了其他同学的;
    • 问题2:第二块内容如何将代码传送至搭档的仓库;
    • 问题2解决方案:由于搭档比我进度快,后来问了问搭档,学习了,谢谢他;

    实验心得

    通过此次实验,又收获了不少,不仅仅知道了代码规约扫描,并且能把出现的问题改正确,还了解了好多Code里面的功能,记住了几个比较实用的小功能。并且,不懂就要搜,不懂就要问,我每个不清楚的问题都要一点一点地问搭档,搭档一个一个地告诉我怎么做,讲得非常细,感谢,以后有什么事我也一定尽力地去帮助他。

    参考资料

  • 相关阅读:
    js鼠标右键菜单
    js变量作用域好玩的东东
    清除浮动
    http通信示例Httpclient和HttpServer
    sql复杂案例
    微信小程序(小游戏)后台开发
    自动授时同步NTP时钟之NTP农历源代码算法立显电子技术部宣
    NTP同步时钟系统的实现及局域网授时方法
    modbus协议显示屏|modbus通讯显示屏|modbus显示电子屏功能码实现代码分享
    带掉电记忆功能的LED时钟代码分享
  • 原文地址:https://www.cnblogs.com/cxd20175303/p/10803656.html
Copyright © 2020-2023  润新知