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

2023-11-02 13:10

本文主要是介绍用了这个IntellijIDEA插件以后,我写代码快了10倍!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击关注公众号,Java干货及时送达24ebbcd7e0c68d8854ce9c29acaea6fc.png

来源:苏三说技术

84ed642103705729eb1b5ff718cce36f.jpeg


前言

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

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

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

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

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

e2c90944492a7b97b739f660ab01e653.png

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

  • 项目地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro

  • 视频教程:https://doc.iocoder.cn/video/

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;}@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 中安装如下插件:

ad450e9ff573768ac4d6d6a9fbf0c330.png

但 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 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://gitee.com/zhijiantianya/yudao-cloud

  • 视频教程:https://doc.iocoder.cn/video/

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 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插件了。

317fae07fb022ecf03a13fea40aa08f2.png

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

cb0c87713f49113024cb4a7b6fb5e9a0.png

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

6544924ff31fb27df06e378d75b4fae0.png

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

3.Translation

有些小伙伴,包括我自己可能英语不太好。我们在给变量或者方法取名时,要想半天。特别是在阅读 JDK 英文文档时,遇到了一些生僻字,简直头大。

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

45c685160941390881467b52f42062a0.png

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

点击该菜单:

c04768f4b8d9b26632109d31501544eb.png

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

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

e46e26a11fe9606d8568d8b262ce727a.png

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

be248b23b25326dfbd382adcdbf37a98.png

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

4.Alibaba Java Coding Guidelines

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

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

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

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

419927c3dd197bf2e04f401ae8cf6d5c.png

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

87440a186eb39811fa1b83e77b69aa46.png

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

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

  • Blocker 崩溃

  • Critical 严重

  • Major 重要

daa31062b0074f72f5c616ead8001d07.png

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

5. GenerateAllSetter

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

有没有办法一键搞定呢?

答:有,使用GenerateAllSetter插件。

dada81ad80451773922dc094f81cafc3.png

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

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

83e1ffa390df4de8ed0a75614a8f9d6d.png

就会自动生成如下代码:

e514a6b176b3cce95eca41126abdd04a.png

简直太方便了。

6. SequenceDiagram

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

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

这时可以使用:SequenceDiagram插件。

fdefd697409c95a58370623ca72a8c20.png

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

4362e148ef32b88a72e9d9455718748a.png

之后,会出现时序图:

3e9bff1cca1e7543009c6f9a99c9bf69.png

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

7. CheckStyle-IDEA

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

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

答:使用CheckStyle-IDEA插件。

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

498ddf93aa25b8ecf055cfb115192c42.png

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

4c3dd5bc69d338f6050b1f887f2417e2.png

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

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

476c4081781f114414fcf1c664004316.png

8.JRebel and XRebel

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

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

答:使用JRebel and XRebel插件。

如图:

13396bfd6ef6602ae0c857a41263ca32.png

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

4646926e869099577ae5baaf3e31ac66.png

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

Select Rebel Agents 选项中包含三个值:

  • JRebel:修改完代码,不重启服务,期望代码直接生效。

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

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

9. Codota

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

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

01da66188b39f51b80fd3e83c399cba9.png

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

5a113006790c76c709f776237edf4442.png

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

10. GsonFormat

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

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

0795f6e4f4ac064999094a0a5ecb1de2.png

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

e51cdd77eb8414b7b281fffd9925398b.png

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

b946946bf4ce1a2bfcfebae5e54319e4.png

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

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

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

简直帅呆了。

11. Rainbow Brackets

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

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

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

答:使用Rainbow Brackets插件。

813866b41785a8643922ee486dc4f247.png

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

19d67532aba09fa5db27b2db1e43db1a.png

非常显目,非常直观。

12. CodeGlance

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

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

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

9820de7ed467decab9eb7a5b75fffebe.png

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

热门内容:
  • 9月19日真实虾皮裁员经历...

  • 微软全力拥抱 Java !

  • 真赔麻了!!一个BUG和一个回帖直接赔了20万!

  • 面试官问:select......for update会锁表还是锁行?

  • 一次堆外内存泄露让整个团队通宵处理到爆肝!

 

6972e10a90e1e90d8a706297fae203da.jpeg

 
最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。
获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

明天见(。・ω・。)

这篇关于用了这个IntellijIDEA插件以后,我写代码快了10倍!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/330816

相关文章

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

代码随想录冲冲冲 Day39 动态规划Part7

198. 打家劫舍 dp数组的意义是在第i位的时候偷的最大钱数是多少 如果nums的size为0 总价值当然就是0 如果nums的size为1 总价值是nums[0] 遍历顺序就是从小到大遍历 之后是递推公式 对于dp[i]的最大价值来说有两种可能 1.偷第i个 那么最大价值就是dp[i-2]+nums[i] 2.不偷第i个 那么价值就是dp[i-1] 之后取这两个的最大值就是d

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

D4代码AC集

贪心问题解决的步骤: (局部贪心能导致全局贪心)    1.确定贪心策略    2.验证贪心策略是否正确 排队接水 #include<bits/stdc++.h>using namespace std;int main(){int w,n,a[32000];cin>>w>>n;for(int i=1;i<=n;i++){cin>>a[i];}sort(a+1,a+n+1);int i=1

Maven(插件配置和生命周期的绑定)

1.这篇文章很好,介绍的maven插件的。 2.maven的source插件为例,可以把源代码打成包。 Goals Overview就可以查看该插件下面所有的目标。 这里我们要使用的是source:jar-no-fork。 3.查看source插件的example,然后配置到riil-collect.xml中。  <build>   <plugins>    <pl

jenkins 插件执行shell命令时,提示“Command not found”处理方法

首先提示找不到“Command not found,可能我们第一反应是查看目标机器是否已支持该命令,不过如果相信能找到这里来的朋友估计遇到的跟我一样,其实目标机器是没有问题的通过一些远程工具执行shell命令是可以执行。奇怪的就是通过jenkinsSSH插件无法执行,经一番折腾各种搜索发现是jenkins没有加载/etc/profile导致。 【解决办法】: 需要在jenkins调用shell脚

Jenkins 插件 地址证书报错问题解决思路

问题提示摘要: SunCertPathBuilderException: unable to find valid certification path to requested target...... 网上很多的解决方式是更新站点的地址,我这里修改了一个日本的地址(清华镜像也好),其实发现是解决不了上述的报错问题的,其实,最终拉去插件的时候,会提示证书的问题,几经周折找到了其中一遍博文

html css jquery选项卡 代码练习小项目

在学习 html 和 css jquery 结合使用的时候 做好是能尝试做一些简单的小功能,来提高自己的 逻辑能力,熟悉代码的编写语法 下面分享一段代码 使用html css jquery选项卡 代码练习 <div class="box"><dl class="tab"><dd class="active">手机</dd><dd>家电</dd><dd>服装</dd><dd>数码</dd><dd