资讯专栏INFORMATION COLUMN

重构与Intellij Idea初探

Forelax / 802人阅读

摘要:是时候讨论这个利器了,最初看到这个重构的过程是从郑大晔校开始的,只是之前对于的另外一个编辑器的坏感。。这些在目前已经不是很重要了,试试这个公司里面应用广泛的编辑器。开发过程开发的流程大致就是这样子的,测试先行算是推荐的。

是时候讨论这个Refactor利器了,最初看到这个重构的过程是从ThoughtWorks郑大晔校开始的,只是之前对于Java的另外一个编辑器Eclipse的坏感。。这些在目前已经不是很重要了,试试这个公司里面应用广泛的编辑器。

开发过程

开发的流程大致就是这样子的,测试先行算是推荐的。

编写测试->功能代码->修改测试->重构

上次在和buddy聊天的时候,才知道测试在功能简单的时候是后行的,在功能复杂不知道怎么手手的时候是先行的。

Interllij Idea重构

开始之前请原谅我对于Java语言的一些无知,然后,看一下我写的Main函数:

package com.phodal.learing;

public class Main {

    public static void main(String[] args) {
        int c=new Cal().add(1,2);
        int d=new Cal2().sub(2,1);
        System.out.println("Hello,s");
        System.out.println(c);
        System.out.println(d);
    }
}

代码写得还好(自我感觉),先不管Cal和Cal2两个类。大部分都能看懂,除了c,d不知道他们表达的是什么意思,于是。

Rename

快捷键:Shift+F6

作用:重命名

把光标丢到int c中的c,按下shift+f6,输入result_add

把光标移到int d中的d,按下shift+f6,输入result_sub

于是就有

package com.phodal.learing;

public class Main {

    public static void main(String[] args) {
        int result_add=new Cal().add(1,2);
        int result_sub=new Cal2().sub(2,1);
        System.out.println("Hello,s");
        System.out.println(result_add);
        System.out.println(result_sub);
    }
}
Extract Method

快捷键:alt+command+m

作用:扩展方法

选中System.out.println(result_add);

按下alt+command+m

在弹出的窗口中输入mprint

于是有了

public static void main(String[] args) {
    int result_add=new Cal().add(1,2);
    int result_sub=new Cal2().sub(2,1);
    System.out.println("Hello,s");
    mprint(result_add);
    mprint(result_sub);
}

private static void mprint(int result_sub) {
    System.out.println(result_sub);
}

似乎我们不应该这样对待System.out.println,那么让我们内联回去

Inline Method

快捷键:alt+command+n

作用:内联方法

选中main中的mprint

alt+command+n

选中Inline all invocations and remove the method(2 occurrences) 点确定

然后我们等于什么也没有做了~~:

public static void main(String[] args) {
    int result_add=new Cal().add(1,2);
    int result_sub=new Cal2().sub(2,1);
    System.out.println("Hello,s");
    System.out.println(result_add);
    System.out.println(result_sub);
}

似乎这个例子不是很好,但是够用来说明了。

Pull Members Up

开始之前让我们先看看Cal2类:

public class Cal2 extends Cal {

    public int sub(int a,int b){
        return a-b;
    }
}

以及Cal2的父类Cal

public class Cal {

    public int add(int a,int b){
        return a+b;
    }

}

最后的结果,就是将Cal2类中的sub方法,提到父类:

public class Cal {

    public int add(int a,int b){
        return a+b;
    }

    public int sub(int a,int b){
        return a-b;
    }
}

而我们所要做的就是鼠标右键

Refactor->Pull Members Up

Pull Members Down

将方法推迟到子类

其他

正在补充学习中

结论

Intellij Idea自带的重构功能似乎真的很强大,其他目前感觉很强大的东西,比如Live Template,丢到下次讨论。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/64208.html

相关文章

  • 为什么选择 Intellij IDEA 作为日常开发工具

    摘要:还记得刚开始学习编程的时候,使用作为日常开发工具。另外,保存的是当前用户的快捷键配置,保存的是默认的快捷键配置若修改上一个注册表不好使,那就把下面的默认的也修改了。 作为一个从事 Java 开发的程序员,每天离不开编辑器的帮助。还记得刚开始学习 Java 编程的时候,使用 Eclipse 作为日常开发工具。后来工作以后,需要使用 Intellij IDEA,刚开始其实并不想怎么用。毕竟...

    Amos 评论0 收藏0
  • IntelliJ IDEA 16预览版更新内容说明

    摘要:线程过去,跨过一个线程意味着要恢复所有的其他线程,而版开始只需要恢复当前线程即可。快速搜索新版本改进了快速搜索的弹出菜单,会将搜索项高亮显示。终于新增支持。 调试器 Groovy表达式 从16版开始,Evaluate Expression 和 Watches可以使用更短且更具表现力的Groovy表达式进行调试,而Groovy表达式以前只能用于Groovy代码。 线程 过去,跨过一个线程...

    iKcamp 评论0 收藏0
  • 玩转IntelliJ IDEA

    摘要:是编程最好的,没有之一,提供了很多强大的功能,而且颜值也很高,唯一美中不足的就是价格不菲,不过好在用教育邮箱可以免费使用,每年授权一次。很多快捷键可以极大程度上提供我们的编码效率,下面记录了一些常用的快捷键。 IntelliJ IDEA是Java编程最好的IDE,没有之一,提供了很多强大的功能,而且颜值也很高,唯一美中不足的就是价格不菲,不过好在用教育邮箱可以免费使用,每年授权一次。 ...

    stackfing 评论0 收藏0
  • 第一部分:idea使用心得

    摘要:第一部分使用心得博客打算从简书迁移过来笔者本来是开发者,开始用的是,配置插件总是出现各种问题,特别是插件与插件总是让人不舒服。在一个接口中要想跳转到他的实现处,就要使用跳转到父类。 第一部分:idea使用心得 博客打算从简书迁移过来 笔者本来是java开发者,开始用的是Eclipse,配置插件总是出现各种问题,特别是git插件与maven插件总是让人不舒服。偶然间, 接触了Intell...

    everfight 评论0 收藏0
  • IDEA使用总结

    摘要:就是下面这种情况我们想帮我们格式换行是这样做的效果一次性导包一次性导包文件编码写中文数据可以编码在默认的情况下,在写中文数据是不会帮我们编码的。 IDEA常用设置 在我们第一眼看见IDEA是这个样子的: showImg(https://segmentfault.com/img/remote/1460000013575242?w=1920&h=1040); 显示工具条 我们要显示工具条!...

    Java_oldboy 评论0 收藏0

发表评论

0条评论

Forelax

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<