是时候讨论这个Refactor利器了,最初看到这个重构的过程是从ThoughtWorks郑大晔校开始的,只是之前对于Java的另外一个编辑器Eclipse的坏感。。这些在目前已经不是很重要了,试试这个公司里面应用广泛的编辑器。
开发过程
开发的流程大致就是这样子的,测试先行算是推荐的。
编写测试->功能代码->修改测试->重构
上次在和buddy聊天的时候,才知道测试在功能简单的时候是后行的,在功能复杂不知道怎么手手的时候是先行的。(转载保留ThoughtWorks 实习记)
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,丢到下次讨论。
分享到:
相关推荐
IntelliJ IDEA是java编程语言开发的集成环境,不过官方是英文版的,这是一个汉化包,下载后放至IntelliJ IDEA安装目录的lib目录下就行,重新启动程序就是中文了。
图解Intellij IDEA 入门教程,简单看得见,轻轻松松成为java开发高手
vscode-intellij-idea-keybindings, vs 代码的IntelliJ IDEA 键绑定端口 用于 Visual Studio 代码的 IntelliJ IDEA 键绑定 vs 代码的IntelliJ IDEA 键绑定端口。 包括 keymaps,WebStorm,PyCharm,PHP Storm等流行...
IntelliJ IDEA 中文指南
史上最简单的 IntelliJ IDEA 教程
resources_cn_IntelliJIDEA_2017.3.1_r2.jar resources_cn_IntelliJIDEA_2017.3.2_r1.jar resources_cn_IntelliJIDEA_2017.3.3_r2.jar resources_cn_IntelliJIDEA_2017.3.4_r1.jar resources_...
IntelliJ IDEA 2020.1.4 x64官方
idea使用教程 IntelliJ IDEA 使用教程 ,IntelliJ IDEA 使用教程
IntelliJ IDEA安装详解配置教程
1.IntelliJ IDEA 介绍 2.本教程介绍 3.Windows 下安装 4.Ubuntu 下安装 5.Mac 下安装 6.安装总结 7.首次运行 8.安装目录讲解 9.界面讲解 10.主题字体和文件编码修改 11.各类文件类型图标讲解 12.索引的讲解 13.编译...
在 IntelliJ IDEA 中配置 Tomcat 服务器是为了能够在开发过程中部署和运行您的 Java Web 应用程序。下面是配置 Tomcat 的基本步骤: 下载和安装 Tomcat: 首先,您需要从 Apache Tomcat 的官方网站...
IntelliJ IDEA是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新的GUI设计等方面的功能可以说是...
Intellij IDEA汉化包。支持最新版本2018.直接复制lib即可。file-seting可用。 设置下菜单可正常打开。
IntelliJ IDEA + PHP插件 ,
IntelliJIDEA快捷键与Eclipse对比,让熟练运用Eclipse的同学能迅速找到IntelliJIDEA对应功能的快捷键。
尚硅谷_宋红康_IntelliJIDEA的安装、配置与使用(带目录) 本课程在腾讯课堂或尚硅谷免费观看学习 尚硅谷 Java视频教程 宋红康 IntelliJIDEA的安装、配置与使用 课程配套文档
intellij_idea 开发工具 简介及使用方法介绍。适合公司及团队内部技术交流使用。
关于Intellij IDEA的教程
intellij idea 集成tomcat