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

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

前言


前言

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

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

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

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

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

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

1. lombok

之前对 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;
    }
    @Override
    public 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);
    }
    @Override
    public int hashCode() {
        return Objects.hash(id, name, age, address);
    }
    @Override
    public 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
@Setter
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String address;
}

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

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

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

2. 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 mapper
        PUBLIC "-//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!

5. GenerateAllSetter

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

有没有办法一键搞定呢?

答:有,使用GenerateAllSetter插件。

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

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

就会自动生成如下代码:

简直太方便了。

6. SequenceDiagram

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

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

这时可以使用:SequenceDiagram插件。

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

之后,会出现时序图:

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

7. 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:修改完代码,不重启服务,并且监控代码。

9. Codota

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

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

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

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

10. GsonFormat

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

以前我们都是手动一个变量一个变量拷贝。但现在有个好消息是,idea 的GsonFormat插件可以帮我们完成这件事。

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

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

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

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

https://mp.weixin.qq.com/s/PiAxqEhkR8g1AOYGGS5Yqw你已选中了添加链接的内容

简直帅呆了。

11. Rainbow Brackets

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

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

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

答:使用Rainbow Brackets插件。

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

非常显目,非常直观。

12. CodeGlance

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

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

答:有,可以使用CodeGlance插件。安装完插件之后,在代码右侧,会出现下面这个窗口:

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

相关文章
|
10天前
|
Java
可直接编辑jar包的IDEA插件-JarEditor
IDEA自带的反编译插件虽可查看jar包中的class文件,但无法直接编辑。为解决此问题,作者开发了JarEditor插件,可在IDEA中直接编辑jar文件内的class及资源文件,无需解压或手动编译。点击Jar Editor可修改代码,通过Save/Compile保存并编译,Build Jar则将更改写回jar包。该插件简化了jar包编辑流程,提高了开发效率。
可直接编辑jar包的IDEA插件-JarEditor
|
13天前
|
自然语言处理 JavaScript 算法
【插件】IDEA这款插件,爱到无法自拔
本文介绍了阿里云「通义灵码」这一强大IDEA插件,它不仅能够智能生成代码、解答研发问题,还支持多种编程语言和编辑器。文章详细展示了如何安装使用该插件,并通过多个实际案例说明其在代码解释、优化、生成注释及单元测试等方面的应用,助力开发者提高效率。强烈推荐尝试!
34 1
【插件】IDEA这款插件,爱到无法自拔
|
24天前
|
Java
2022年最新最详细的IntelliJ idea高效插件的介绍安装,让你的工作效率提升10倍
这篇文章详细介绍了10款IntelliJ IDEA的高效插件,包括Codota代码智能提示、Key Promoter X快捷键提示、CodeGlance代码缩略图、Lombok代码简化、阿里巴巴代码规范检查、SonarLint代码质量检查、Save Actions格式化代码、Translation翻译、Rainbow Brackets彩虹括号和Nyan Progress Bar彩虹进度条插件,旨在帮助提升开发效率和代码质量。
2022年最新最详细的IntelliJ idea高效插件的介绍安装,让你的工作效率提升10倍
|
28天前
|
Java 数据库连接 Spring
如何在IDEA中自定义模板、快速生成完整的代码?
这篇文章介绍了如何在IntelliJ IDEA中使用easycode插件自定义代码生成模板,以快速生成Spring Boot、MyBatis等项目中常见的Controller、Service、Dao、Mapper等组件的代码。
如何在IDEA中自定义模板、快速生成完整的代码?
|
22天前
|
XML 数据格式
IDEA 行注释设置,使其不从顶格开始,让其处于代码前开始
这篇文章提供了IntelliJ IDEA中如何设置行注释不从顶格开始,而是紧接在代码前面的方法,通过访问Settings中的Code Style选项进行调整,以改善代码注释的视觉效果。
|
22天前
|
开发工具 git
成功解决 IDEA 2020 版本 代码报错不提示的几种方案
这篇文章提供了几种解决IntelliJ IDEA 2020版本中代码报错不提示问题的方案,包括通过修改文件夹权限、暂存本地更改后进行git pull,以及在git pull后应用暂存的更改并提交代码到远程仓库的方法。
|
2月前
|
Java
[JarEditor]可直接修改jar包的IDEA插件
### 修改JAR包变得更简单:JarEditor插件简介 **背景:** 开发中常需修改JAR包中的class文件,传统方法耗时费力。JarEditor插件让你一键编辑JAR包内文件,无需解压。 **插件使用:** 1. **安装:** 在IDEA插件市场搜索JarEditor并安装。 2. **修改class:** 打开JAR文件中的class,直接编辑,保存后一键构建更新JAR。 3. **文件管理:** 右键菜单支持在JAR内新增/删除/重命名文件等操作。 4. **搜索:** 使用内置搜索功能快速定位JAR包内的字符串。
231 2
[JarEditor]可直接修改jar包的IDEA插件
|
29天前
|
安全 开发工具 git
coding上创建项目、创建代码仓库、将IDEA中的代码提交到coding上的代码仓库、Git的下载、IDEA上配置git
这篇文章是关于如何在IDEA中配置Git、在Coding.net上创建项目和代码仓库,并将IDEA中的代码提交到远程代码仓库的详细教程,涵盖了Git安装、IDEA配置、项目创建、代码提交等步骤。
coding上创建项目、创建代码仓库、将IDEA中的代码提交到coding上的代码仓库、Git的下载、IDEA上配置git
|
2月前
|
Java Maven
idea安装并使用maven依赖分析插件:Maven Helper
idea安装并使用maven依赖分析插件:Maven Helper
809 7
|
2月前
|
JSON Java Maven
几个适合Java开发者的免费IDEA插件
【7月更文挑战第15天】以下是适合Java开发者的免费IDEA插件: - **Test Data**: 生成用于单元测试的随机数据,支持多种格式如JSON、CSV等。 - **SonarLint**: 实时检测并修正代码质量问题,提供详细的风险分析。 - **Maven Helper**: 提供pom.xml文件的UI界面,便于管理Maven项目依赖。 - **RestFulTool**: 辅助RESTful服务开发与测试,尤其适合Spring MVC和Spring Boot项目。 - **EnvFile**: 在IDE内部设置运行配置的环境变量,支持YAML、JSON等格式。