当前位置: 首页 > 科技观察

这12个Idea插件可以让你的代码飞起来!

时间:2023-03-21 14:07:53 科技观察

前言基本上每个程序员都会写代码,只是写代码的速度不尽相同。为什么有的人一天只能写几百行代码?而有的人,一天能写几千行代码吗?有没有办法提高开发效率,同时写更多的代码?今天就和大家聊一聊12款idea中提高编码效率的插件,希望对大家有所帮助。1、在lombok之前,关于lombok的争论还是存在的。到底该不该在项目中使用,我为此专门写了一篇文章《迷茫了,我们该不该用lombok?》。现在新版的idea已经内置了lombok插件,所以用它是一种趋势。之所以把lombok放在整篇介绍的第一位,是因为它确实可以帮助我少写很多代码,尤其是在entity、DTO、VO、BO方面。我们用User类举例,以前定义javabean需要写如下代码:publicclassUser{privateLongid;私有字符串名称;私人整数年龄;私有字符串地址;publicUser(){}publicUser(Longid,Stringname,Integerage,Stringaddress){this.id=id;this.name=名称;这个。年龄=年龄;this.address=地址;}publicLonggetId(){返回id;}publicStringgetName(){返回名称;}publicIntegergetAge(){返回年龄;}publicStringgetAddress(){返回地址;}publicvoidsetId(Longid){this.id=id;}publicvoidsetName(Stringname){this.name=name;}publicvoidsetAge(Integerage){this.age=age;}publicvoidsetAddress(Stringaddress){this.address=address;}@Overridepublicbooleanequals(Objecto){if(this==o)returntrue;如果(o==null||getClass()!=o.getClass())返回假;用户user=(User)o;返回Objects.equals(id,user.id)&&Objects.equals(name,user.name)&&Objects.equals(age,user.age)&&对象。等于(地址,用户地址);}@OverridepublicinthashCode(){returnObjects.hash(id,name,age,address);}@OverridepublicStringtoString(){return"User{"+"id="+id+",name='"+name+'\''+",age="+age+",address='"+地址+'\''+'}';}}在User类中Contains:成员变量、getter/setter方法、构造方法、equals、hashCode方法乍一看代码挺多的。还有一个问题,如果修改了User类中的代码,比如:age字段改成string类型,或者name字段名称改了,是否需要修改相关的成员变量,getter/settermethods,构造方法,修改所有的equals和hashCode方法?好消息是lombok可以解决这个问题。如果是idea2020.3之前的版本,需要在idea中安装以下插件:但是在idea2020.3之后,idea已经内置了lombok功能。有了lombok插件,现在我们只需要在idea中这样写代码就可以实现上面的功能:@ToString@EqualsAndHashCode@NoArgsConstructor@AllArgsConstructor@Getter@SetterpublicclassUser{私有字符串名称;私人整数年龄;privateStringaddress;}简直太简单了,真的能省不少代码。另外,我们还需要在项目的pom文件中引入lombok依赖包,否则项目无法运行。2、免费的Mybatis插件已经成为国内最主流的数据库框架。该框架属于半自动ORM持久化框架,比hibernate的全自动持久化框架更灵活,性能更高。在mybatis中,我们需要定义mapper和对应的xml文件来完成绑定。这里我们以user表为例。首先,我们需要定义UserMapper接口:publicinterfaceUserMapper{intinsertUser(UserModeluser);}然后需要UserMapper.xml配置文件:id,name,age,sexINSERTINTO用户id,姓名,年龄,性别,#{id},#{name},#{age},#{sex},在UserMapper.xml文件中,mapper标签的命名空间对应UserMapper接口名,insert标签的id=insertUser,对应UserMapper接口中的insertUser方法,如何通过项目中UserMapper类中的getUser方法快速访问到UserMapper.xml文件中的getUser方法呢?答:这需要使用FreeMybatis插件。安装插件后,UserMapper接口的接口名和方法名左侧会有两个绿色箭头。点击箭头跳转到UserMapper.xml文件对应的mapper标签或insertUser语句。另外,在UserMapper.xml文件中insertUser语句的左侧,也会有一个绿色的箭头。点击这个箭头也可以跳转到UserMapper接口的insertUser方法。有了这个插件,我们就可以在mapper和xml之间自由切换,自由发挥,再也不用像以前那样东找西找了。3.翻译的一些朋友,包括我自己,可能英语不是很好(我刚通过CET-4)。我们在给变量或者方法命名的时候,要考虑很久。尤其是在看JDK英文文档的时候,遇到一些生僻字,很是头疼。好消息是使用:翻译插件,可以让我们在文档中自由飞翔。安装翻译插件后,在其他设置中多了一个翻译菜单。点击这个菜单:在右边的窗口中,可以选择翻译软件。选择需要翻译的英文文档:在右键弹出的窗口中,选择翻译选项,弹出如下窗口:英文段落一下子翻译成中文,真爽。4.AlibabaJavaCodingGuidelines如果你是从事Java开发的小伙伴,你一定看过阿里巴巴的《Java开发手册》。本手册总结了我们在日常开发过程中可能遇到的问题。从编程规范、异常日志、单元测试、安全规范、Mysql数据库和工程结构这六个方面规范了开发流程,保证我们可以写出高效优雅的代码。但是,这些规范的东西仅仅依靠人的意识是很难达到预期效果的。为了解决这个问题,阿里巴巴推出了AlibabaJavaCodingGuidelines插件,可以通过该插件直接检测非标准代码。安装插件后,按快捷键:Ctrl+Alt+Shift+J扫描整个项目或单个文件进行编码规则。扫描后,不规则条码将从高到低排序。目前有以下三个级别显示:BlockerCrashCriticalMajorImportant点击左侧其中一个不规范的代码行,右侧的窗口会立即显示不规范的详细代码,方便我们快速定位问题.5.GenerateAllSetter很多时候,我们需要给一个对象赋值。如果参数很多,我们需要手写大量的setter或者getter代码。有没有办法一键搞定?答:可以,使用GenerateAllSetter插件。安装插件后,在创建的对象上,按下快捷键:alt+enter。在弹出的窗口中选择:Generateallsetterwithdefaultvalue。会自动生成如下代码:简直太方便了。6.SequenceDiagram我们平时阅读源码的时候,为了理清内部逻辑,往往需要画一些时序图。如果我们直接画,会浪费很多时间,而且画出来的图不一定正确。这时候你可以使用:SequenceDiagram插件。选择具体的方法,右键选择:时序图选项:之后会出现时序图:从此,你也能成为画画高手,完美。7、在代码格式方面,CheckStyle-IDEA有很多需要我们注意的地方,比如:无用的导入,没有注释,语法错误,方法太长等等。有没有办法在idea中一次性检测出以上问题?答:使用CheckStyle-IDEA插件。CheckStyle-IDEA是一个检测代码格式是否符合规范的工具,其中谷歌规范和Sun规范使用较多。安装插件后会在idea下方出现:CheckStyle选项:点击左侧绿色按钮扫码。在中间位置,显示不符合代码规范的原因。双击代码直接跳转到具体代码:8、JRebel和XRebel在idea中开发Java项目。有一个很不爽的事情:每次修改一个类或者接口,都需要重启服务,否则最新版本运行不了。地方。而且每次重启都需要很多时间。有没有什么办法,修改Java代码后,不用重启系统就可以立即生效?答:使用JRebel和XRebel插件。如图:安装完成后会出现两个绿色按钮,右边有个选项SelectRebelAgents:其中一个绿色按钮表示热部署启动项目,另一个表示debug默认热部署启动项目。SelectRebelAgents选项包含三个值:JRebel:修改代码后不重启服务,希望代码直接生效。XRebel:在请求过程中,对各部分代码的性能监控。例如:方法执行时间、异常、SQL执行时间、输出Log、MQ执行时间等。JRebel+XRebel:修改代码后,不重启服务,监控代码。9.Codota老实说idea现有的代码提示功能已经很强大了。但如果你使用过Codota插件,它会让你的写作速度更上一层楼。安装插件后,我们写代码的时候,它会给你一些提示:这些提示是基于ai统计的,很有参考价值。10.GsonFormat很多时候需要将json中的参数转换成实体对象中的参数。或者将实体对象中的参数转成json中的参数。以前我们都是手动复制一个变量一个变量。不过现在好消息是idea的GsonFormat插件可以帮我们做到这一点。安装好插件后,首先创建一个空类:按下快捷键:alt+s,会弹出如下窗口:然后在这个窗口中输入json数据。单击“确定”按钮,这些代码将自动生成:太酷了。11.RainbowBrackets平时我们在写代码的时候,括号是我们非常头疼的问题,尤其是当代码逻辑比较多,层层嵌套的时候。一眼看去,很难看出代码从哪个括号开始,哪个后括号结束。有没有解决的办法?A:使用RainbowBrackets插件。安装插件后,代码中会自动用不同颜色区分中括号和后括号:非常显眼直观。12.CodeGlance有时,我们会阅读很多代码,例如,一个类包含很多方法和成员变量。从上到下,一点一点地翻,会浪费很多时间。那么有没有办法快速翻到你想看的代码呢?答:是的,您可以使用CodeGlance插件。安装插件后,代码右侧会出现如下窗口:是代码的缩略图,通过它我们可以非常快速的切换代码块。