0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅谈idea提升编码效率的12种插件

我快闭嘴 来源:苏三说技术 作者:苏三说技术 2022-10-09 12:00 次阅读

前言

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

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

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

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

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

e1341aec-4162-11ed-96c9-dac502259ad0.png

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

1. lombok

之前对 lombok 还有争议,到底该不该在项目中使用。

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

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

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

publicclassUser{

privateLongid;
privateStringname;
privateIntegerage;
privateStringaddress;

publicUser(){

}

publicUser(Longid,Stringname,Integerage,Stringaddress){
this.id=id;
this.name=name;
this.age=age;
this.address=address;
}

publicLonggetId(){
returnid;
}

publicStringgetName(){
returnname;
}

publicIntegergetAge(){
returnage;
}

publicStringgetAddress(){
returnaddress;
}


publicvoidsetId(Longid){
this.id=id;
}

publicvoidsetName(Stringname){
this.name=name;
}

publicvoidsetAge(Integerage){
this.age=age;
}

publicvoidsetAddress(Stringaddress){
this.address=address;
}

@Override
publicbooleanequals(Objecto){
if(this==o)returntrue;
if(o==null||getClass()!=o.getClass())returnfalse;
Useruser=(User)o;
returnObjects.equals(id,user.id)&&
Objects.equals(name,user.name)&&
Objects.equals(age,user.age)&&
Objects.equals(address,user.address);
}

@Override
publicinthashCode(){
returnObjects.hash(id,name,age,address);
}

@Override
publicStringtoString(){
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 中安装如下插件:

e1455a28-4162-11ed-96c9-dac502259ad0.png

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

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

@ToString
@EqualsAndHashCode
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
publicclassUser{

privateLongid;
privateStringname;
privateIntegerage;
privateStringaddress;
}

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

此外,我们还需要在项目的 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 接口

publicinterfaceUserMapper{
intinsertUser(UserModeluser);
}

然后需要 UserMapper.xml 配置文件:






id,name,age,sex



INSERTINTOuser


id,


name,


age,


sex,




#{id},


#{name},


#{age},


#{sex},




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

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

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

e1745a1c-4162-11ed-96c9-dac502259ad0.png

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

e18aa86c-4162-11ed-96c9-dac502259ad0.png

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

e19cb610-4162-11ed-96c9-dac502259ad0.png

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

3.Translation

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

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

e1d6ce7c-4162-11ed-96c9-dac502259ad0.png

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

点击该菜单:

e209342a-4162-11ed-96c9-dac502259ad0.png

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

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

e21cc3d2-4162-11ed-96c9-dac502259ad0.png

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

e2619a98-4162-11ed-96c9-dac502259ad0.png

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

4.Alibaba Java Coding Guidelines

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

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

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

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

e29b2420-4162-11ed-96c9-dac502259ad0.png

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

e2a6b146-4162-11ed-96c9-dac502259ad0.png

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

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

Blocker 崩溃

Critical 严重

Major 重要

e2e0dec0-4162-11ed-96c9-dac502259ad0.png

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

5. GenerateAllSetter

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

有没有办法一键搞定呢?

答:有,使用GenerateAllSetter插件。

e35d7412-4162-11ed-96c9-dac502259ad0.png

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

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

e36f7d7e-4162-11ed-96c9-dac502259ad0.png

就会自动生成如下代码:

e3a9b098-4162-11ed-96c9-dac502259ad0.png

简直太方便了。

6. SequenceDiagram

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

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

这时可以使用:SequenceDiagram插件。

e3d01d00-4162-11ed-96c9-dac502259ad0.png

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

e3dd24dc-4162-11ed-96c9-dac502259ad0.png

之后,会出现时序图:

e3fb6f6e-4162-11ed-96c9-dac502259ad0.png

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

7. CheckStyle-IDEA

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

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

答:使用CheckStyle-IDEA插件。

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

e423edd6-4162-11ed-96c9-dac502259ad0.png

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

e435f634-4162-11ed-96c9-dac502259ad0.png

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

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

e45f595c-4162-11ed-96c9-dac502259ad0.png

8.JRebel and XRebel

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

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

答:使用JRebel and XRebel插件。

如图:

e488a9ba-4162-11ed-96c9-dac502259ad0.png

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

e494d366-4162-11ed-96c9-dac502259ad0.png

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

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

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

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

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

9. Codota

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

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

e4ac9f78-4162-11ed-96c9-dac502259ad0.png

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

e4c589f2-4162-11ed-96c9-dac502259ad0.png

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

10. GsonFormat

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

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

e4f5d5e4-4162-11ed-96c9-dac502259ad0.png

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

e519b19e-4162-11ed-96c9-dac502259ad0.png

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

e5363846-4162-11ed-96c9-dac502259ad0.png

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

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

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

简直帅呆了。

11. Rainbow Brackets

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

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

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

答:使用Rainbow Brackets插件。

e545d9ea-4162-11ed-96c9-dac502259ad0.png

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

e56b6598-4162-11ed-96c9-dac502259ad0.png

非常显目,非常直观。

12. CodeGlance

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

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

答:有,可以使用CodeGlance插件。e590c0ae-4162-11ed-96c9-dac502259ad0.png安装完插件之后,在代码右侧,会出现下面这个窗口:

e5aa3912-4162-11ed-96c9-dac502259ad0.png

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

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 代码
    +关注

    关注

    30

    文章

    4787

    浏览量

    68598
  • 插件
    +关注

    关注

    0

    文章

    327

    浏览量

    22442
  • idea
    +关注

    关注

    1

    文章

    68

    浏览量

    4276

原文标题:用了这个IntellijIDEA插件以后,我写代码快了10倍!

文章出处:【微信号:芋道源码,微信公众号:芋道源码】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    提升团队编码效率的10个提示

    更具效率和生产力的提示。1. 定义好团队结构可以按照多种方式来定义团队结构,不过最常见的两是主程序员团队与无我编程团队。主程序员团队至少由3人组成:一个主程序员、一个高级程序员和一个程序管理员。这种
    发表于 12-11 14:34

    IDEA插件MyBatisCodeHelperPro 21版本介绍

    开发了两年多的 IDEA插件 MyBatisCodeHelperPro 21 版本发布
    发表于 07-12 17:07

    IDEA EasyCode插件怎么使用

    目录1、前言2、安装(EasyCode)3、建立数据库4、在IDEA配置连接数据库5、开始生成代码6、pom.xml7、Application.yml8、启动项目来源:jianshu.c...
    发表于 12-08 07:17

    10个可帮助提升UI设计效率的Figma插件

    在 UI/UX 设计领域,很多工作已经不用真的从0开始做了。用好插件,往往能让设计工作事半功倍。在 Figma 和 Sketch 这样的设计工具当中,插件赋予了设计更多的可能性,更快的执行效率,更快捷的流程,以及更完善的体系。这
    发表于 06-14 17:27 1043次阅读

    compileflow-idea-designer compileflow引擎的Idea插件

    ./oschina_soft/compileflow-idea-designer.zip
    发表于 05-18 14:18 2次下载
    compileflow-<b class='flag-5'>idea</b>-designer compileflow引擎的<b class='flag-5'>Idea</b><b class='flag-5'>插件</b>

    MrtfGitFlow4Idea分支管理插件

    ./oschina_soft/mrtf-git-flow-4idea.zip
    发表于 05-18 14:17 1次下载
    MrtfGitFlow4<b class='flag-5'>Idea</b>分支管理<b class='flag-5'>插件</b>

    Idea Javadocs2 IntelliJ IDEA插件

    ./oschina_soft/idea-javadocs2.zip
    发表于 05-18 14:13 1次下载
    <b class='flag-5'>Idea</b> Javadocs2 IntelliJ <b class='flag-5'>IDEA</b><b class='flag-5'>插件</b>

    ADB IDEA Android Studio和IDEA的安卓开发插件

    ./oschina_soft/adb-idea.zip
    发表于 05-18 11:44 3次下载
    ADB <b class='flag-5'>IDEA</b> Android Studio和<b class='flag-5'>IDEA</b>的安卓开发<b class='flag-5'>插件</b>

    idea-mini-ibatis iBatis/MyBatis插件

    ./oschina_soft/idea-mini-ibatis.zip
    发表于 05-18 11:38 1次下载
    <b class='flag-5'>idea</b>-mini-ibatis iBatis/MyBatis<b class='flag-5'>插件</b>

    Intellij IDEA插件idea-plugin-protobuf

    ./oschina_soft/idea-plugin-protobuf.zip
    发表于 05-18 11:09 2次下载
    Intellij <b class='flag-5'>IDEA</b><b class='flag-5'>插件</b><b class='flag-5'>idea</b>-plugin-protobuf

    idea-gitignore IDE .ignore插件

    ./oschina_soft/idea-gitignore.zip
    发表于 06-10 09:12 1次下载
    <b class='flag-5'>idea</b>-gitignore IDE .ignore<b class='flag-5'>插件</b>

    SpringBoot插件化开发模式

    插件化开发模式正在很多编程语言或技术框架中得以广泛的应用实践,比如大家熟悉的jenkins,docker可视化管理平台rancher,以及日常编码使用的编辑器idea,vscode等,随处可见的带有
    的头像 发表于 06-21 09:45 1153次阅读
    SpringBoot<b class='flag-5'>插件</b>化开发模式

    IDEA接口测试神器Apipost Helper 2.0简介

    最近注意到Apipost IDEA插件 2.0版本已上架至IDEA插件商店并与1.0版本互相独立存在,大家安装时可留意Apipost Helper 2.0,下面给大家分享一下新增功能。
    的头像 发表于 09-21 14:57 2059次阅读
    <b class='flag-5'>IDEA</b>接口测试神器Apipost Helper 2.0简介

    关于图片压缩的idea插件

    ( "com.tinify:tinify:latest.release" ) 核心实现 在这个 idea 插件项目中,指北君这边提供了一个 dialog 的方式来展示
    的头像 发表于 10-09 15:06 579次阅读
    关于图片压缩的<b class='flag-5'>idea</b><b class='flag-5'>插件</b>

    介绍一款IDEA插件:Apipost-Helper-2.0

    IDEA是一款功能强大的集成开发环境(IDE)插件,它可以帮助开发人员更加高效地编写、调试和部署软件应用程序。
    的头像 发表于 12-06 10:47 779次阅读
    介绍一款<b class='flag-5'>IDEA</b><b class='flag-5'>插件</b>:Apipost-Helper-2.0