暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

推荐几款我常用的Idea插件

来搞笑的Yuan 2020-03-14
573

工欲善其事,必先利其器。IDEA是Java后端程序员必备的开发IDE,上面有着丰富的插件可以大大提升开发效率,这篇文章推荐几个我认为不错的IDEA插件

1.Lombok

Lombok是个很优秀的插件,也是我安装IDEA后最先安装的插件,它方便快捷,用注解和模板代码的形式让代码非常简洁。

首先搜索插件,安装,

使用时也非常方便,这是一个常用的例子,也是我比较喜欢使用的,首先@Data相当于生成了成员变量的get/set方法,然后链式赋值的写法会让初始化一个类特别的方便,代码也十分优雅。

@Data
@Accessors(chain = true)
@NoArgsConstructor
public class TestLombok {
private String name;
private Integer age;


public static void main(String[] args) {
TestLombok lombok = new TestLombok().setAge(10).setName("j4fan");
System.out.println(lombok.getName());
}
}

除此之外还有@Builder(建造者的形式初始化类),@SneakyThrows(欺骗Jvm编译时忽略报错,慎用)等其他注解。

当然Lombok被网友喷的也很惨,很多人不愿意用,有以下原因:

  1. 传染性 即如果你的代码使用了Lombok,其他依赖于你jar包的项目也需要使用Lombok才可以看你的源码。这对于开源软件或者大型组织里的软件确实有些向别人强推的意思。

  2. 代码可读性 这里通常说的是例如用了@Data,就无法像以前那样点set方法,右键findUsage就可以找到使用set方法的代码了。

  3. 隐形规则带来的潜在bug。例如@Data注解的类如果是某父类的子类,equals函数默认是不看父类的属性的。这和我们的期望不符,还需要添加@EqualsAndHashCode(callSuper = true)


@Data
public abstract class TestFather {
protected String lastName;
}


@Data
//@EqualsAndHashCode(callSuper = true)
public class TestSon extends TestFather {


private String firstName;




public static void main(String[] args) {
TestSon a = new TestSon();
TestSon b = new TestSon();


a.setLastName("fan1");
b.setLastName("fan");


a.setFirstName("ff");
b.setFirstName("ff");


System.out.println(a.equals(b)); //结果为true
}
}

类似上面的例子在去掉@EqualsAndHashCode(callSuper = true)注解时,结果为true。

可以说使用的方便性也带来了维护的潜在难度,是否使用Lombok只能说见仁见智,合理使用避免bug的基础上能加快开发效率才是最好的。

2.CodeGlance

当一个Class文件特别大的时候,拖动这样的一个侧边栏,即可帮助我们快速定位到需要的位置。效果如图:

3.Rainbow Brackets

RainbowBrackets可以帮助你方便的区分大小括号的层级。效果如图:

这对于括号层级很多的代码,可以方便区分自己的代码在哪个括号范围内。

4.RestfulToolkit

有些小伙伴刚接手新的web项目,希望一次性知道项目controller的入口都在哪里,或者对外开放哪些接口,这个工具可以轻松实现,对Spring体系的接口都有效。

使用时,点开右边的侧边栏,可以查看到项目中所有的接口列表,点击接口会跳转到具体代码,同时可以对接口进行测试。

5.GsonFormat

将json转为Java类的插件,避免了一个个创建成员变量的麻烦。

假如我们有如下一个json需要生成Java的类

{
"code": 200,
"data": {
"records": [
{
"brandId":521692,
"brandName":"安佳"
},
{
"brandId":513500,
"brandName":"果実生活"
}
],
"page": 1,
"pageSize": 10,
"pageCount": 2,
"totalCount": 20
},
"message":"查询成功"
}

我们可以新建一个空的类TestJsonFormat,如下操作

6.AlibabaCloudTookit

这个工具可以说是神器,在IDEA中有这样一款用于轻量级部署的工具,真的对阿里出品的东西是大写的服(btw在热搜榜单看到了AmazonCloudTookit,不知道两者是否有千丝万缕的关系)。

首先它的基础功能可以帮你替代终端工具例如XShell,只需在Host中添加登录所需的必要信息,即可快速登录服务器。

点击terminal即可登录服务器,点击upload即可快速向服务器指定目录上传本地文件,避免写scp的麻烦。

同样还有轻量级的CI功能,如果是个人应用可以省去了引入jenkins的麻烦,点击 deploy toHost
,填写jar包部署目录,写好脚本,之后便可一键部署,非常之方便。除了部署在服务器上指定路径下,也可以部署在Docker中。

当然这是阿里的插件,对阿里云上的产品有更快捷的功能,例如ECS,RDS部署等,有兴趣可以自己研究。

7.JclassLib

Jclasslib是反汇编的插件,类似于 javap-c
的功能,可以查看类的汇编码,对于了解常量池,以及同步块等需要查看汇编指令的知识时可以使用。

使用方法很简单,安装完成后, View->ShowByteCodeWithJclassLib
即可

8.MavenHelper

这个插件就不多说了,可以参考我的这篇文章如何解决让人头疼的Maven依赖冲突

9.Findbugs/SonarLint/AlibabaJavaCodingGuidelines

这类代码检查的插件也不少,功能都是差不多的,按需选择吧,我目前用的是SonarLint,对有问题的代码都会有响应的提示。



以上就是我经常使用,并且认为可以提高开发效率的插件,希望能给大家的开发带来帮助,提升开发体验。

祝大家编码愉快,生活愉快,下篇再见!

上篇内容:如何搭建项目脚手架

文章转载自来搞笑的Yuan,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论