0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

淺談idea提升編碼效率的12種插件

我快閉嘴 ? 來源:蘇三說技術(shù) ? 作者:蘇三說技術(shù) ? 2022-10-09 12:00 ? 次閱讀

前言

基本上每個程序員都會寫代碼,但寫代碼的速度不盡相同。

為什么有些人,一天只能寫幾百行代碼?

而有些人,一天可以寫幾千行代碼?

有什么辦法可以提升開發(fā)效率,在相同的時(shí)間內(nèi)寫出更多的代碼呢?

今天我跟大家一起聊聊在idea中,能提升編碼效率的12種插件,希望對大家有所幫助。

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

基于 Spring Boot + MyBatis Plus + Vue & Element 實(shí)現(xiàn)的后臺管理系統(tǒng) + 用戶小程序,支持 RBAC 動態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能

1. lombok

之前對 lombok 還有爭議,到底該不該在項(xiàng)目中使用。

現(xiàn)在新版的 idea 已經(jīng)內(nèi)置了 lombok 插件,所以用它是一種趨勢。

我之所以把 lombok 放在第一個介紹,是因?yàn)樗娴目梢詭臀疑賹懞芏啻a,特別是 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 方法、構(gòu)造方法、equals、hashCode 方法。

乍一看,代碼還是挺多的。而且還有個問題,如果 User 類中的代碼修改了,比如:age 字段改成字符串類型,或者 name 字段名稱修改了,是不是需要同步修改相關(guān)的成員變量、getter/setter 方法、構(gòu)造方法、equals、hashCode 方法全都修改一遍?

好消息是用 lombok 可以解決這個問題。

如果是 idea2020.3 之前的版本,需要在 idea 中安裝如下插件:

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

但 idea2020.3 之后,idea 已經(jīng)內(nèi)置了 lombok 的功能。

有了 lombok 插件,現(xiàn)在我們在 idea 只用這樣寫代碼,就能實(shí)現(xiàn)上面的功能了:

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

privateLongid;
privateStringname;
privateIntegerage;
privateStringaddress;
}

簡直太輕松了,真的可以少寫很多代碼。

此外,我們還需要在項(xiàng)目的 pom 文件中,引入 lombok 的依賴包,不然項(xiàng)目會跑不起來。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實(shí)現(xiàn)的后臺管理系統(tǒng) + 用戶小程序,支持 RBAC 動態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能

項(xiàng)目地址:https://gitee.com/zhijiantianya/yudao-cloud

視頻教程:https://doc.iocoder.cn/video/

2. Free Mybatis plugin

在國內(nèi)mybatis已經(jīng)成為了最主流的數(shù)據(jù)庫框架了,該框架屬于半自動化的 ORM 持久化框架,相對于 hibernate 這種全自動化的持久化框架更靈活,性能更高。

在mybatis中,我們需要自己定義 mapper 和對應(yīng)的 xml 文件完成綁定。

在這里我們以用戶表為例,首先需要定義 UserMapper 接口

publicinterfaceUserMapper{
intinsertUser(UserModeluser);
}

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






id,name,age,sex



INSERTINTOuser


id,


name,


age,


sex,




#{id},


#{name},


#{age},


#{sex},




UserMapper.xml 文件中,mapper 標(biāo)簽的 namespace 對應(yīng) UserMapper 接口名,而 insert 標(biāo)簽的 id=insertUser,正好對應(yīng) UserMapper 接口中的 insertUser 方法。

那么,在項(xiàng)目中如何通過 UserMapper 類中的 getUser 方法,能夠快速訪問 UserMapper.xml 文件中的 getUser 方法?

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

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

安裝了該插件之后,在 UserMapper 接口的接口名和方法名的左邊,多了兩個綠色的箭頭,我們點(diǎn)擊該箭頭,就能跳轉(zhuǎn)到 UserMapper.xml 文件對應(yīng)的 mapper 標(biāo)簽或者 insertUser 語句上。

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

此外,在 UserMapper.xml 文件的 insertUser 語句的左邊,也會多出一個綠色的箭頭,我們點(diǎn)擊該箭頭,也能跳轉(zhuǎn)到 UserMapper 接口的 insertUser 方法上。

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

有了這個插件,我們就能在 mapper 和 xml 之間自由切換自由玩耍了,再也不用像以前那樣搜索來搜索去。

3.Translation

有些小伙伴,包括我自己可能英語不太好。我們在給變量或者方法取名時(shí),要想半天。特別是在閱讀 JDK 英文文檔時(shí),遇到了一些生僻字,簡直頭大。

有個好消息是使用:Translation插件,能夠讓我們在文檔中自由飛翔。

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

安裝完Translation插件之后,在 other settings 中多了一個 Translation 菜單。

點(diǎn)擊該菜單:

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

在右邊的窗口中,可以選擇翻譯軟件。

選中需要翻譯的英文文檔:

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

在右鍵彈窗的窗口中,選擇 Translation 選項(xiàng),會彈如下窗口:

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

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

4.Alibaba Java Coding Guidelines

如果你是從事 Java 開發(fā)工作的小伙伴,肯定看過阿里巴巴的《Java 開發(fā)手冊》。

該手冊總結(jié)了我們在日常開發(fā)過程中,可能會遇到的問題。從編程規(guī)約、異常日志、單位測試、安全規(guī)約、Mysql 數(shù)據(jù)庫和工程結(jié)構(gòu)這 6 大方面,規(guī)范了開發(fā)的流程,確保我們能寫出高效、優(yōu)雅的代碼。

但這些規(guī)范性的東西,僅僅靠人的自覺性,很難達(dá)到預(yù)期的效果。

為了解決這個問題,阿里巴巴推出了Alibaba Java Coding Guidelines插件,能夠通過該插件,直接查出不合規(guī)范的代碼。

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

安裝了該插件之后,按下快捷鍵:Ctrl+Alt+Shift+J,可以對整個項(xiàng)目或單個文件進(jìn)行編碼規(guī)約掃描。

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

掃描后會將不規(guī)范的代碼按從高到低排列。

目前有三個等級顯示在下方:

Blocker 崩潰

Critical 嚴(yán)重

Major 重要

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

點(diǎn)擊左邊其中一個不規(guī)范的代碼行,右邊窗口會立刻顯示不規(guī)范的詳細(xì)代碼,便于我們快速定位問題。nice!

5. GenerateAllSetter

很多時(shí)候,我們需要給某個對象賦值,如果參數(shù)比較多的話,需要手寫大量的setter或者getter代碼。

有沒有辦法一鍵搞定呢?

答:有,使用GenerateAllSetter插件。

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

安裝完插件之后,在創(chuàng)建的對象上,按下快捷鍵:alt + enter。

在彈出的窗口中選擇:Generate all setter with default value。

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

就會自動生成如下代碼:

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

簡直太方便了。

6. SequenceDiagram

我們平時(shí)在閱讀源碼時(shí),為了梳理清楚內(nèi)部邏輯,經(jīng)常需要畫一些時(shí)序圖。

如果我們直接畫,會浪費(fèi)很多時(shí)間,而且畫的圖不一定正確。

這時(shí)可以使用:SequenceDiagram插件。

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

選擇具體某個方法,右鍵選擇:sequence diagram 選項(xiàng):

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

之后,會出現(xiàn)時(shí)序圖:

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

從此以后,就成為畫圖高手了,完美。

7. CheckStyle-IDEA

在代碼格式方面,有許多地方需要我們注意,比如:無用導(dǎo)入、沒寫注釋、語法錯誤、方法太長等等。

有沒有辦法,可以在 idea 中一次性檢測出上面的這些問題呢?

答:使用CheckStyle-IDEA插件。

CheckStyle-IDEA是一個檢測代碼格式是否滿足規(guī)范的工具,其中用得比較多的是Google規(guī)范和Sun規(guī)范。

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

安裝完插件后,在 idea 的下方會出現(xiàn) CheckStyle 選項(xiàng):

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

點(diǎn)擊左邊的綠色按鈕,可以掃描代碼。在中間位置,會顯示不符合代碼規(guī)范的原因。

雙擊代碼,即可直接跳轉(zhuǎn)到具體代碼:

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

8.JRebel and XRebel

在 idea 中開發(fā) Java 項(xiàng)目,有個很不爽的地方是:每次修改一個類或者接口,都需要重啟服務(wù),否則不會運(yùn)行最新地方。而每次重啟,都需要花大量的時(shí)間。

有沒有辦法,Java 代碼修改后不用重啟系統(tǒng),立即生效呢?

答:使用JRebel and XRebel插件。

如圖:

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

安裝完成之后,這里會有兩個綠色的按鈕,并且在右邊多了一個選項(xiàng) Select Rebel Agents:

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

其中一個綠色的按鈕,表示熱部署啟動項(xiàng)目,另外一個表示用 debug 默認(rèn)熱部署啟動項(xiàng)目。

Select Rebel Agents 選項(xiàng)中包含三個值:

JRebel:修改完代碼,不重啟服務(wù),期望代碼直接生效。

XRebel:請求過程中,各個部分代碼性能監(jiān)控。例如:方法執(zhí)行時(shí)間、出現(xiàn)的異常、SQL 執(zhí)行時(shí)間、輸出的 Log、MQ 執(zhí)行時(shí)間等。

JRebel+XRebel:修改完代碼,不重啟服務(wù),并且監(jiān)控代碼。

9. Codota

說實(shí)話,idea 現(xiàn)有的代碼提示功能,已經(jīng)很強(qiáng)大了。

但如果你使用過Codota插件,它會讓你寫代碼的速度更上一層樓。

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

安裝完插件之后,我們在寫代碼時(shí),它會給你一些提示:

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

這些提示是基于 ai 統(tǒng)計(jì)出來的,非常有參考價(jià)值。

10. GsonFormat

很多時(shí)候,我需要把json中的參數(shù),轉(zhuǎn)換成實(shí)體對象中的參數(shù)。或者把實(shí)體對象中的參數(shù),轉(zhuǎn)換成json中的參數(shù)。

以前我們都是手動一個變量一個變量拷貝。但現(xiàn)在有個好消息是,idea 的GsonFormat插件可以幫我們完成這件事。

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

安裝完插件之后,先創(chuàng)建一個空類:

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

按下快捷鍵:alt + s,會彈出下面這個窗口:

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

然后在該窗口中,錄入 json 數(shù)據(jù)。

點(diǎn)擊確定按鈕,就會自動生成這些代碼:

https://mp.weixin.qq.com/s/PiAxqEhkR8g1AOYGGS5Yqw你已選中了添加鏈接的內(nèi)容

簡直帥呆了。

11. Rainbow Brackets

我們平時(shí)寫代碼的時(shí)候,括號是讓我們非常頭疼的地方,特別是代碼邏輯很多、層層嵌套的情況。

一眼很難看出,代碼是從哪個括號開始,到哪個反括號結(jié)束的。

有沒有辦法解決這個問題呢?

答:使用Rainbow Brackets插件。

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

安裝完插件之后,括號和反括號,在代碼中會自動按照不同顏色做區(qū)分:

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

非常顯目,非常直觀。

12. CodeGlance

有些時(shí)候,我們閱讀的代碼很多,比如某個類中包含的方法和成員變量很多。

從上往下,一點(diǎn)點(diǎn)往下翻,會浪費(fèi)很多時(shí)間。那么有沒有辦法,能夠快速翻到想看的代碼呢?

答:有,可以使用CodeGlance插件。e590c0ae-4162-11ed-96c9-dac502259ad0.png安裝完插件之后,在代碼右側(cè),會出現(xiàn)下面這個窗口:

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

它是代碼的縮略圖,通過它我們能夠非??焖俚厍袚Q代碼塊。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4697

    瀏覽量

    68096
  • 插件
    +關(guān)注

    關(guān)注

    0

    文章

    319

    瀏覽量

    22377
  • idea
    +關(guān)注

    關(guān)注

    1

    文章

    67

    瀏覽量

    4226

原文標(biāo)題:用了這個IntellijIDEA插件以后,我寫代碼快了10倍!

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    提升團(tuán)隊(duì)編碼效率的10個提示

    更具效率和生產(chǎn)力的提示。1. 定義好團(tuán)隊(duì)結(jié)構(gòu)可以按照多種方式來定義團(tuán)隊(duì)結(jié)構(gòu),不過最常見的兩是主程序員團(tuán)隊(duì)與無我編程團(tuán)隊(duì)。主程序員團(tuán)隊(duì)至少由3人組成:一個主程序員、一個高級程序員和一個程序管理員。這種
    發(fā)表于 12-11 14:34

    IDEA插件MyBatisCodeHelperPro 21版本介紹

    開發(fā)了兩年多的 IDEA插件 MyBatisCodeHelperPro 21 版本發(fā)布
    發(fā)表于 07-12 17:07

    IDEA EasyCode插件怎么使用

    目錄1、前言2、安裝(EasyCode)3、建立數(shù)據(jù)庫4、在IDEA配置連接數(shù)據(jù)庫5、開始生成代碼6、pom.xml7、Application.yml8、啟動項(xiàng)目來源:jianshu.c...
    發(fā)表于 12-08 07:17

    10個可幫助提升UI設(shè)計(jì)效率的Figma插件

    在 UI/UX 設(shè)計(jì)領(lǐng)域,很多工作已經(jīng)不用真的從0開始做了。用好插件,往往能讓設(shè)計(jì)工作事半功倍。在 Figma 和 Sketch 這樣的設(shè)計(jì)工具當(dāng)中,插件賦予了設(shè)計(jì)更多的可能性,更快的執(zhí)行效率,更快捷的流程,以及更完善的體系。這
    發(fā)表于 06-14 17:27 ?1015次閱讀

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

    ./oschina_soft/compileflow-idea-designer.zip
    發(fā)表于 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
    發(fā)表于 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
    發(fā)表于 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的安卓開發(fā)插件

    ./oschina_soft/adb-idea.zip
    發(fā)表于 05-18 11:44 ?3次下載
    ADB <b class='flag-5'>IDEA</b> Android Studio和<b class='flag-5'>IDEA</b>的安卓開發(fā)<b class='flag-5'>插件</b>

    idea-mini-ibatis iBatis/MyBatis插件

    ./oschina_soft/idea-mini-ibatis.zip
    發(fā)表于 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
    發(fā)表于 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
    發(fā)表于 06-10 09:12 ?1次下載
    <b class='flag-5'>idea</b>-gitignore IDE .ignore<b class='flag-5'>插件</b>

    SpringBoot插件化開發(fā)模式

    插件化開發(fā)模式正在很多編程語言或技術(shù)框架中得以廣泛的應(yīng)用實(shí)踐,比如大家熟悉的jenkins,docker可視化管理平臺rancher,以及日常編碼使用的編輯器idea,vscode等,隨處可見的帶有
    的頭像 發(fā)表于 06-21 09:45 ?655次閱讀
    SpringBoot<b class='flag-5'>插件</b>化開發(fā)模式

    IDEA接口測試神器Apipost Helper 2.0簡介

    最近注意到Apipost IDEA插件 2.0版本已上架至IDEA插件商店并與1.0版本互相獨(dú)立存在,大家安裝時(shí)可留意Apipost Helper 2.0,下面給大家分享一下新增功能。
    的頭像 發(fā)表于 09-21 14:57 ?1942次閱讀
    <b class='flag-5'>IDEA</b>接口測試神器Apipost Helper 2.0簡介

    關(guān)于圖片壓縮的idea插件

    ( "com.tinify:tinify:latest.release" ) 核心實(shí)現(xiàn) 在這個 idea 插件項(xiàng)目中,指北君這邊提供了一個 dialog 的方式來展示
    的頭像 發(fā)表于 10-09 15:06 ?516次閱讀
    關(guān)于圖片壓縮的<b class='flag-5'>idea</b><b class='flag-5'>插件</b>

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

    IDEA是一款功能強(qiáng)大的集成開發(fā)環(huán)境(IDE)插件,它可以幫助開發(fā)人員更加高效地編寫、調(diào)試和部署軟件應(yīng)用程序。
    的頭像 發(fā)表于 12-06 10:47 ?685次閱讀
    介紹一款<b class='flag-5'>IDEA</b><b class='flag-5'>插件</b>:Apipost-Helper-2.0