这12款idea插件,能让你代码飞起来!
前言
基本上每个程序员都会写代码,但写代码的速度不尽相同。
为什么有些人,一天只能写几百行代码?
而有些人,一天可以写几千行代码?
有没有办法,可以提升开发效率,在相同的时间内,写出更多的代码呢?
今天我跟大家一起聊聊在idea
中,能提升编码效率的12
种插件,希望对大家有所帮助。
1. lombok
之前对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中安装如下插件:但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的依赖包,不然项目会跑不起来。
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
插件了。
安装了该插件之后,在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数据。
点击确定按钮,就会自动生成这些代码:简直帅呆了。
11. Rainbow Brackets
我们平时写代码的时候,括号是让我们非常头疼的地方,特别是代码逻辑很多,层层嵌套的情况。
一眼很难看出,代码是从哪个括号开始,到哪个反括号结束的。
有没有办法解决这个问题呢?
答:使用Rainbow Brackets
插件。
安装完插件之后,括号和反括号,在代码中会自动按照不同颜色做区分:非常显目,非常直观。
12. CodeGlance
有些时候,我们阅读的代码很多,比如某个类中包含的方法和成员变量很多。
从上往下,一点点往下翻,会浪费很多时间。那么有没有办法,能够快速翻到想看的代码呢?
答:有,可以使用CodeGlance
插件。安装完插件之后,在代码右侧,会出现下面这个窗口:它是代码的缩略图,通过它我们能够非常快速的切换代码块。
这12款idea插件,能让你代码飞起来!相关推荐
- waves效果器_盘点Waves的12款混响插件,你用的是哪个?
对于混响,你平时最常用的是经典设备的建模还是纯数字化插件?Waves一共有12款混响类插件,下面让我们来盘点一下吧: H-Reverb Hybrid Reverb 采用有限脉冲响应(Finite Im ...
- 这12款Idea插件,能让你代码飞起来
前言 基本上每个程序员都会写代码,但写代码的速度不尽相同. 为什么有些人,一天只能写几百行代码? 而有些人,一天可以写几千行代码? 有没有办法,可以提升开发效率,在相同的时间内,写出更多的代码呢? 今 ...
- 这 12 款 idea 插件,能让你代码飞起来!
点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | ...
- 这 12 款 IDEA 插件你用过几款?
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查看更多 搞 Ja ...
- 插件显示缩进_硬核,这 3 款 IDE 插件让你的代码牢不可破
01.CheckStyle Checkstyle 是一个静态代码分析工具,用来检查 Java 源代码是否符合编码规则. 那编码规则由谁定义才能比较被认可呢? 除了 Sun,还有谷歌,可以吧?感兴趣的小 ...
- 硬核,这 3 款 IDE 插件让你的代码牢不可破
有一段时间没去电影院了,上次看的还是战争题材的<八佰>,现在还能记得当时的观影感受:热血沸腾的同时,一种宁死不屈的信念从心底油然而生.战场虽然只有四行仓库那么大点的地方,却显得牢不可破,敌 ...
- 12款堪称神器的 Chrome 插件,Max 你的工作效率!
导语:好的工具插件是提高程序员生产力的法宝,本文介绍了 12 款Chrome 插件,非常高效实用,还附带下载地址, 果断收藏~ 工欲善其事,必先利其器,程序员的日常工作根本就 离 不 开 Chrome ...
- 网站项目必备——12款白富美型 jQuery 图片轮播插件
转自:http://www.cnblogs.com/lhb25/archive/2013/01/06/jquery-image-carousel-effect.html 图片轮播是网站中的常用功能,用 ...
- 精心挑选12款优秀的 JavaScript 日历和时间选择插件
今天这篇文章向大家分享12款精心挑选的优秀 JavaScript 日历和时间选择插件,都带有详细的使用教程和效果演示.这些插件能够帮助 Web 开发人员更快速的实现各种精美的日历和时间选择效果.同时推 ...
- java ajax jquery分页插件_分享精心挑选的12款优秀jQuery Ajax分页插件和教程
摘要:这篇jQuery栏目下的"分享精心挑选的12款优秀jQuery Ajax分页插件和教程",介绍的技术点是"jquery_ajax分页插件.jquery_ajax.a ...
最新文章
- Oracle单机版开机自启动
- mysql三范式和反三范式_数据库三范式和反三范式
- php laravel组件,php – 在Laravel中为共享组件包中的文件配置
- MongoDB 的 upsert
- 以太坊 2.0、分片、DAG、链下状态通道……概述区块链可扩展性的解决方案!
- golang for switch break 使用
- 百度指数邀请序列号_腾讯第8款社交AppHood 上线;抖音内测云游戏、直播回放等新功能;百度推出多人视频社交App一起吧| 产品挖掘机...
- Groovy中那些神奇注解之ToString
- Go语言的线程模型-线程阻塞+线程调度
- 《圈圈教你玩USB》之 USB鼠标
- vue 小写金额转换为大写金额
- 海贝思蓝牙接收器Linux,Hagibis海备思 蓝牙音频接收 耳机怎么样,评测
- [转载]矩阵求导运算规则
- 浏览器使用flash时出现此Flash Player 与您所在地区不相容的提示解决方法
- 学生对计算机课程的意见和建议怎么写,对学校的意见和建议5条怎么写
- 浅谈深度学习:基于对LSTM项目`LSTM Neural Network for Time Series Prediction`的理解与回顾
- 2020双十一商家物流迎来大考:看拙燕仓如何破局?
- create connection SQLException, url: jdbc:mysql:///test, errorCode 1045, state 28000
- Windows重置提示找不到恢复环境
- SpringBoot SSO整合
热门文章
- Android学习笔记---集成百度语音合成的坑与坑
- Java实现Socket网络聊天室
- redhat linux 7 apt,redhat enterprise linux apt 使用简介
- 掌上军营服务器信息,智慧军营之视频监控系统
- matlab 关键路径函数,用线性规划建模(确定参数)关键路径法
- 终于把所有的 Python 库都整理出来啦,赶紧收藏!!!
- 前端项目没数据?教你抓取各大网站api
- javafx 五、网络请求
- 一个简洁美观的静态网页登陆页面(css+html)
- 神武3 服务器维护公告,《神武3》手游本周更新后的调整内容抢先知