久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

這 12 款 idea 插件,,能讓你代碼飛起來

 風(fēng)聲之家 2022-09-13 發(fā)布于江蘇

蘇三說技術(shù)

作者曾浪跡幾家大廠,掘金優(yōu)秀創(chuàng)作者,,CSDN萬粉博主,。

基本上每個(gè)程序員都會(huì)寫代碼,但寫代碼的速度不盡相同,。

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

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

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

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

圖片

1. lombok

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

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

我之所以把 lombok 放在第一個(gè)介紹,是因?yàn)樗娴目梢詭臀疑賹懞芏啻a,特別是 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;
    }

    @Override
    public 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);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, name, age, address);
    }

    @Override
    public String toString() {
        return"User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", address='" + address + '\'' +
                '}';
    }
}

該 User 類中包含了:成員變量,、getter/setter 方法,、構(gòu)造方法、equals,、hashCode 方法,。

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

好消息是用 lombok 可以解決這個(gè)問題。

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

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

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

@ToString
@EqualsAndHashCode
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class User {

    private Long id;
    private String name;
    private Integer age;
    private String address;
}

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

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

2. Free Mybatis plugin

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

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

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

public interface UserMapper {
  int insertUser(UserModel user);
}

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

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-////DTD Mapper 3.0//EN"
        "http:///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 標(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插件了,。

圖片

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

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

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

3.Translation

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

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

圖片安裝完Translation插件之后,,在 other settings 中多了一個(gè) Translation 菜單。

點(diǎn)擊該菜單:

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

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

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

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

4.Alibaba Java Coding Guidelines

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

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

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

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

圖片

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

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

目前有三個(gè)等級(jí)顯示在下方:

  • Blocker 崩潰
  • Critical 嚴(yán)重
  • Major 重要

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

5. GenerateAllSetter

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

有沒有辦法一鍵搞定呢,?

答:有,使用GenerateAllSetter插件,。

圖片

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

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

圖片就會(huì)自動(dòng)生成如下代碼:

圖片簡直太方便了。

6. SequenceDiagram

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

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

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

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

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

圖片

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

7. CheckStyle-IDEA

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

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

答:使用CheckStyle-IDEA插件。

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

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

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

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

圖片

8.JRebel and XRebel

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

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

答:使用JRebel and XRebel插件,。

如圖:

圖片

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

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

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

  • JRebel:修改完代碼,,不重啟服務(wù),期望代碼直接生效,。
  • XRebel:請求過程中,,各個(gè)部分代碼性能監(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插件,,它會(huì)讓你寫代碼的速度更上一層樓,。

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

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

10. GsonFormat

很多時(shí)候,,我需要把json中的參數(shù),,轉(zhuǎn)換成實(shí)體對象中的參數(shù)?;蛘甙?code style="margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; font-size: 14px; border-radius: 4px; background-color: rgba(27, 31, 35, 0.05); font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace; word-break: break-all; color: rgb(40, 202, 113);">實(shí)體對象中的參數(shù),,轉(zhuǎn)換成json中的參數(shù),。

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

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

圖片按下快捷鍵:alt + s,,會(huì)彈出下面這個(gè)窗口:

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

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

圖片簡直帥呆了,。

11. Rainbow Brackets

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

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

有沒有辦法解決這個(gè)問題呢,?

答:使用Rainbow Brackets插件,。

圖片安裝完插件之后,括號(hào)和反括號(hào),,在代碼中會(huì)自動(dòng)按照不同顏色做區(qū)分:

圖片非常顯目,,非常直觀。

12. CodeGlance

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

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

答:有,可以使用CodeGlance插件,。圖片安裝完插件之后,,在代碼右側(cè),會(huì)出現(xiàn)下面這個(gè)窗口:

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

- END -

喜歡此內(nèi)容的人還喜歡

菜鳥教程

不喜歡

確定

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多