写点什么

用了这个 IntellijIDEA 插件以后,我写代码快了 10 倍!

作者:Java-fenn
  • 2022 年 9 月 25 日
    湖南
  • 本文字数:4404 字

    阅读完需:约 14 分钟

前言


基本上每个程序员都会写代码,但写代码的速度不尽相同。


为什么有些人,一天只能写几百行代码?


而有些人,一天可以写几千行代码?


有没有办法,可以提升开发效率,在相同的时间内,写出更多的代码呢?


今天我跟大家一起聊聊在 idea 中,能提升编码效率的 12 种插件,希望对大家有所帮助。


  1. lombok


现在新版的 idea 已经内置了 lombok 插件,所以用它是一种趋势。


我之所以把 lombok 放在整篇文章的第一个介绍,是因为它真的可以帮我少写很多代码,特别是 entity、DTO、VO、BO 中的。


我们用 User 类举例,以前定义 javabean 需要写如下代码:


public class User {


private Long id;private String name;private Integer age;private String address;
public User() {
}
public User(Long id, String name, Integer age, String address) { this.id = id; this.name = name; this.age = age; this.address = address;}
public Long getId() { return id;}
public String getName() { return name;}
public Integer getAge() { return age;}
public String getAddress() { return address;}

public void setId(Long id) { this.id = id;}
public void setName(String name) { this.name = name;}
public void setAge(Integer age) { this.age = age;}
public void setAddress(String address) { this.address = address;}
@Overridepublic boolean equals(Object o) { if (this == o) returntrue; if (o == null || getClass() != o.getClass()) returnfalse; User user = (User) o; return Objects.equals(id, user.id) && Objects.equals(name, user.name) && Objects.equals(age, user.age) && Objects.equals(address, user.address);}
@Overridepublic int hashCode() { return Objects.hash(id, name, age, address);}
@Overridepublic String toString() { return"User{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + ", address='" + address + '\'' + '}';}
复制代码


}该 User 类中包含了:成员变量、getter/setter 方法、构造方法、equals、hashCode 方法。


咋一看,代码还是挺多的。而且还有个问题,如果 User 类中的代码修改了,比如:age 字段改成字符串类型,或者 name 字段名称修改了,是不是需要同步修改相关的成员变量、getter/setter 方法、构造方法、equals、hashCode 方法全都修改一遍?


好消息是用 lombok 可以解决这个问题。


如果是 idea2020.3 之前的版本,需要在 idea 中安装如下插件:


但 idea2020.3 之后,idea 已经内置了 lombok 的功能。


有了 lombok 插件,现在我们在 idea 只用这样写代码,就能实现上面的功能了:


@ToString@EqualsAndHashCode@NoArgsConstructor@AllArgsConstructor@Getter@Setterpublic class User {


private Long id;private String name;private Integer age;private String address;
复制代码


}简直太轻松了,真的可以少写很多代码。


此外,我们还需要在项目的 pom 文件中,引入 lombok 的依赖包,不然项目会跑不起来。


  1. Free Mybatis plugin


在国内 mybatis 已经成为了最主流的数据库框架了,该框架属于半自动化的 ORM 持久化框架,相对于 hibernate 这种全自动化的持久化框架更灵活,性能更高。


在 mybatis 中,我们需要自己定义 mapper 和对应的 xml 文件完成绑定。


在这里我们以用户表为例,首先需要定义 UserMapper 接口:


public interface UserMapper {int insertUser(UserModel user);}然后需要 UserMapper.xml 配置文件:


<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.sue.jump.mappers.UserMapper">


<sql id="selectUserVo">    id, name, age, sex </sql>
<insert id="insertUser" parameterType="com.sue.jump.model.UserModel"> INSERT INTO user <trim prefix="(" suffix=")" suffixOverrides=","> <if test="id != null "> id, </if> <if test="name != null and name != ''"> name, </if> <if test="age != null "> age, </if> <if test="sex != null "> sex, </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="id != null "> #{id}, </if> <if test="name != null and name != ''"> #{name}, </if> <if test="age != null "> #{age}, </if> <if test="sex != null "> #{sex}, </if> </trim></insert>
复制代码


</mapper>UserMapper.xml 文件中,mapper 标签的 namespace 对应 UserMapper 接口名,而 insert 标签的 id=insertUser,正好对应 UserMapper 接口中的 insertUser 方法。


那么,在项目中如何通过 UserMapper 类中的 getUser 方法,能够快速访问 UserMapper.xml 文件中的 getUser 方法?


答:这就需要使用 Free Mybatis plugin 插件了。


安装了该插件之后,在 UserMapper 接口的接口名和方法名的左边,会多了两个绿色的箭头,我们点击该箭头,就能跳转到 UserMapper.xml 文件对应的 mapper 标签或者 insertUser 语句上。


此外,在 UserMapper.xml 文件的 insertUser 语句的左边,也会多出一个绿色的箭头,我们点击该箭头,也能跳转到 UserMapper 接口的 insertUser 方法上。


有了这个插件,我们就能在 mapper 和 xml 之间自由切换,自由玩耍了,再也不用像以前那样搜索来搜索去。


3.Translation


有些小伙伴,包括我自己可能英语不太好(我英语刚过四级)。


我们在给变量或者方法取名时,要想半天。特别是在阅读 JDK 英文文档时,遇到了一些生僻字,简直头大。


有个好消息是使用: Translation 插件,能够让我们在文档中自由飞翔。


安装完 Translation 插件之后,在 other settings 中多了一个 Translation 菜单。


点击该菜单:


在右边的窗口中,可以选择翻译软件。


选中需要翻译的英文文档:


在右键弹窗的窗口中,选择 Translation 选项,会弹如下窗口:


一段英文段落,一下子翻译成了中文,简直太爽了。


4.Alibaba Java Coding Guidelines


如果你是从事 Java 开发工作的小伙伴,肯定看过阿里巴巴的《Java 开发手册》。


该手册总结了我们在日常开发过程中,可能会遇到的问题。从编程规约、异常日志、单位测试、安全规约、Mysql 数据库和工程结构,这 6 大方面,规范了开发的流程,确保我们能写出高效、优雅的代码。


但这些规范性的东西,仅仅靠人的自觉性,很难达到预期的效果。


为了解决这个问题,阿里巴巴推出了 Alibaba Java Coding Guidelines 插件,能够通过该插件,直接查出不合规范的代码。


安装了该插件之后,按下快捷键: Ctrl+Alt+Shift+J ,可以可对整个项目或单个文件进行编码规约扫描。


扫描后会将不规范的代码按从高到低。


目前有三个等级显示在下方:


Blocker 崩溃


Critical 严重


Major 重要


点击左边其中一个不规范的代码行,右边窗口会立刻显示不规范的详细代码,便于我们快速定位问题。


nice。


  1. GenerateAllSetter


很多时候,我们需要给某个对象赋值,如果参数比较多的话,需要手写大量的 setter 或者 getter 代码。


有没有办法一键搞定呢?


答:有,使用 GenerateAllSetter 插件。


安装完插件之后,在创建的对象上,按快捷键下: alt + enter 。


在弹出的窗口中选择:Generate all setter with default value。


就会自动生成如下代码:


简直太方便了。


  1. SequenceDiagram


我们平时在阅读源码时,为了梳理清楚内部逻辑,经常需要画一些 时序图 。


如果我们直接画,会浪费很多时间,而且画的图不一定正确。


这时可以使用: SequenceDiagram 插件。


选择具体某个方法,右键选择:sequence diagram 选项:


之后,会出现时序图:


从此以后,能够成为画图高手了,完美。


  1. CheckStyle-IDEA


在代码格式方面,有许多地方,需要我们注意,比如: 无用导入、没写注释、语法错误、方法太长等等。


有没有办法,可以在 idea 中,一次性检测出上面的这些问题呢?


答:使用 CheckStyle-IDEA 插件。


CheckStyle-IDEA 是一个检测代码格式是否满足规范的工具,其中用得比较多的是 Google 规范和 Sun 规范。


安装完插件后,在 idea 的下方会出现:CheckStyle 选项:


点击左边的绿色按钮,可以扫描代码。在中间位置,会显示不符合代码规范的原因。


双击代码,即可直接跳转到具体代码:


8.JRebel and XRebel


在 idea 中开发 Java 项目,有个很不爽的地方是: 每次修改一个类或者接口,都需要重启服务,否则不会运行最新地方。


而每次重启,都需要花大量的时间。


有没有办法,Java 代码修改后不用重启系统,立即生效呢?


答:使用 JRebel and XRebel 插件。


如图:


安装完成之后,这里会有两个绿色的按钮,并且在右边多了一个选项 Select Rebel Agents:


其中一个绿色的按钮,表示热部署启动项目,另外一个表示用 debug 默认热部署启动项目。


Select Rebel Agents 选项中包含三个值:JRebel:修改完代码,不重启服务,期望代码直接生效。


XRebel:请求过程中,各个部分代码性能监控。例如:方法执行时间,出现的异常,SQL 执行时间,输出的 Log,MQ 执行时间等。


JRebel+XRebel:修改完代码,不重启服务,并且监控代码。


  1. Codota


说实话,idea 现有的代码提示功能,已经很强大了。


但如果你使用过 Codota 插件,它会让你写代码的速度更上一层楼。


安装完插件之后,我们在写代码时,它会给你一些提示:


这些提示是基于 ai 统计出来的,非常有参考价值。


  1. GsonFormat


很多时候,我需要把 json 中的参数,转换成 实体对象 中的参数。或者把 实体对象 中的参数,转换成 json 中的参数。


以前我们都是手动一个变量,一个变量的拷贝的。


但现在有个好消息是,idea 的 GsonFormat 插件可以帮我们完成这件事。


安装完插件之后,先创建一个空类:


按下快捷键: alt + s ,会弹出下面这个窗口:


然后在该窗口中,录入 json 数据。


点击确定按钮,就会自动生成这些代码:


简直帅呆了。


  1. Rainbow Brackets


我们平时写代码的时候,括号是让我们非常头疼的地方,特别是代码逻辑很多,层层嵌套的情况。


一眼很难看出,代码是从哪个括号开始,到哪个反括号结束的。


有没有办法解决这个问题呢?


答:使用 Rainbow Brackets 插件。


安装完插件之后,括号和反括号,在代码中会自动按照不同颜色做区分:


非常显目,非常直观。


  1. CodeGlance


有些时候,我们阅读的代码很多,比如某个类中包含的方法和成员变量很多。


从上往下,一点点往下翻,会浪费很多时间。那么有没有办法,能够快速翻到想看的代码呢?


答:有,可以使用 CodeGlance 插件。


安装完插件之后,在代码右侧,会出现下面这个窗口:


它是代码的缩略图,通过它我们能够非常快速的切换代码块。

用户头像

Java-fenn

关注

需要Java资料或者咨询可加我v : Jimbye 2022.08.16 加入

还未添加个人简介

评论

发布
暂无评论
用了这个IntellijIDEA插件以后,我写代码快了10倍!_Java_Java-fenn_InfoQ写作社区