用了 Intellij idea 這些插件和高效配置後,寫代碼快得飛起來,再也不用 996 加班了

来源:https://www.cnblogs.com/wxweven/archive/2022/05/27/16316008.html
-Advertisement-
Play Games

微信支付是企業級項目中經常使用到的功能,作為後端開發人員,完整地掌握該技術是十分有必要的。 ...


0. 背景

作為一個 Java 程式員,我相信,絕大多數同學日常都是用 idea 來寫代碼。

Idea 作為宇宙第一 Java IDE,提供了豐富、強大的功能,可以讓你寫 Java 代碼快得飛起來。

遺憾的是,很多人都不知道怎麼開啟 idea 隱藏的強大功能。下麵博主將帶你一起,探究 idea 背後那些強大到逆天的功能。

特別說明:

本文所有實操基於 Mac OSX 系統,其他操作系統(如 Windows,Linux 等)沒有實踐過,不做講解。

非特別說明:

雖然文章標題有點『標題黨』的嫌疑,但是內容絕對不是標題黨文章,乾貨滿滿,請耐心往下看,看完沒收穫直接來北京打我!

1. ToC(目錄)

本文將從以下幾個方面,展開講解:

  • keymap
  • 常用插件
  • 高效配置
  • 超好用的快捷鍵
  • 神器:Postfix
  • 終極神器:Live Template

2. keymap

keymap,就是 idea 的快捷鍵配置方案,本身沒有太多的內容,之所以放到最前面,是因為後續的講解,很大程度上都依賴於 keymap。

建議將 keymap 設置為預設的,比如 Mac 下預設的 keymap 就是 Mac OS X 10.5 +。

這樣當你想使用某個快捷鍵而 Google 時,多數時候,找到的答案都使用的是預設的快捷鍵方案,不然的話,別人的快捷鍵你不一定適用。

3. 常用插件

接下來為大家推薦一些常用的插件,有了這些插件的加持,會讓你的工作事半功倍。

為了方便大家索引,先把推薦的插件列到下麵:

  • Lombok
  • Key Promoter X
  • Alibaba Java Coding Guide
  • CamelCase
  • GenerateAllSetter
  • Codota AI Autocomplete
  • GsonFormat
  • Grep Console
  • MavenHelper
  • RestfulToolKit
  • RainbowBrackets
  • Mybatis Plugin

下麵將逐一介紹這些常用的插件。

3.1 Lombok

插件官網:https://plugins.jetbrains.com/plugin/6317-lombok

這個插件,相信不用多做解釋,寫過 Java 的同學都知道,JavaBean 代碼里有一堆的 set/get,tostring 等方法,非常臃腫。有了 Lombok 之後,再也不用寫這些臃腫的代碼了。

3.2 Key Promoter X

插件官網:https://plugins.jetbrains.com/plugin/9792-key-promoter-x

這個插件的作用是告訴你,你做的某個操作,有哪些快捷鍵可以代替。

有些時候,我們想要做某件事情,比如我想打開 idea 自帶的 terminal,但是我並不知道有快捷鍵可以用,於是我只能傻乎乎的用滑鼠去點開 terminal。

有了這個插件後,當你用滑鼠去點 terminal 時,右下角會有個彈窗提示,告訴你,其實你沒必要用滑鼠去點,直接使用快捷鍵 Alt + F12 就可以了,如下圖:

file

怎麼樣,是不是很貼心!

3.3 Alibaba Java Coding Guide

插件官網:https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines

這個插件,也不做過多解釋。阿裡巴巴官方推出了 Java 開發手冊,這個插件就是檢查你的代碼是否符合手冊規範的,直接安裝吧,相信阿裡巴巴!

舉個簡單的例子,當我要獲取當前時間戳的時候,我這麼寫:long time1 = new Date().getTime(),這個時候,它就會有報錯提示,告訴你直接使用 long time2 = System.currentTimeMillis()
file

怎麼樣,是不是很智能,又學到了一招吧!

3.4 CamelCase

插件官網:https://plugins.jetbrains.com/plugin/7160-camelcase

這個插件的作用是對字元串做格式上的轉化: kebab-case, SNAKE_CASE, PascalCase, camelCase, snake_case or space case 等。

典型的應用場景是,比如我們資料庫裡面的欄位,用的是下劃線的格式,但是 Java 裡面的欄位,用的是駝峰的格式。

我們怎麼保證不會因為手殘導致資料庫欄位和 Java 欄位對不上呢?比如資料庫欄位是 your_name,一不小心 Java 里寫成了 youName。

當你遇到問題的時候,估計查到哭都查不出來,Java 裡面的欄位少了個 'r'。

這種情況下,CamelCase 插件就派上用場了。使用快捷鍵 Alt + Shift + u,就可以在各種格式之間切換了,很容易就可以把 your_name 變成 yourName。

如下所示:
file

當然,鑒於多數情況下,Java 不存在 kebab-case/space case 即 中劃線/空格 連接方式,你還可以在配置中設置,格式切換時去掉他們,這樣切換時,按 Alt + Shift + u 的次數就可以少些,配置方法如下:
file

3.5 GenerateAllSetter

插件官網:https://plugins.jetbrains.com/plugin/9360-generateallsetter

這絕對是一個特別值得推薦的插件,能夠 save your life !

在我們寫代碼的時候,經常會有各種 dto 之間的轉化,比如從資料庫的 User 轉化為前端的 UserVO。

如果是你自己寫,先不說寫一堆 get/set 累不累,最關鍵的是,我怕寫漏了某個欄位!比如 User 有 10 個欄位,最後到 UserVO 只有 9 個了,哭都沒地方哭!

總不能一個個數吧?這時候 GenerateAllSetter 就出來拯救你了!他可以自動的幫你生成 UserVO 所有的 set 方法,更智能的是,如果 UserVO 和 User 欄位名一樣,它還會自動幫你生成 get!如下圖所示:
file

當我需要將 User 轉化為 UserVO 時,在我寫好方法聲明後,按下 Alt + Enter,選中 Generate setter getter converter,他就自動幫我寫好轉化的代碼了!

怎麼樣,是不是 6 得飛起,媽媽再也不用擔心我寫漏欄位了!

題外話:

可能有些人會有疑問,不就是個 DTO 轉化嗎?我用 BeanUtils 等工具不香嗎?還真是不香,這玩意有很多坑,性能是一方面,關鍵是當欄位名不一樣時,很難察覺到

3.6 Codota AI Autocomplete

插件官網:https://plugins.jetbrains.com/plugin/7638-codota-ai-autocomplete-for-java-and-javascript

關於 AI 插件,目前我就推薦這一個,確實比較強大(好多 AI 插件,名曰人工智慧,其實人工智障,還卡得要死)。貼一個 gif 大家感受下:
file

當你想初始化一個 List 的時候,再你敲完 List 後,你就可以發現,後面的 users = new ArrayList<>(); 就有智能提示了,都不用敲了。

當然上面舉的例子只是 Codota 很小的一個智能提示,其他更多留給大家探索。

總之,很多時候,它的智能提示很強大,能省去你不少時間,省得你一個個敲代碼了!

3.7 GsonFormat

插件官網:https://plugins.jetbrains.com/plugin/7654-gsonformat

這個插件的作用,就是根據 json 字元串,自動生成 Java bean。先放個官網的 gif 吧:
file

這裡使用的快捷鍵是:Alt + s。

這裡需要註意的一點是,gsonformat 插件支持自定義 json 反序列化庫,比如 jackson,gson 等,可以在 setting 裡面設置,如下圖:
file

3.8 Grep Console

插件官網:https://plugins.jetbrains.com/plugin/7125-grep-console

這個插件的作用是對 idea 預設的 Console(控制台)做增強,比如預設的控制台輸出的日誌,不管日誌級別是什麼,都是沒有顏色區分的。
有了這個插件後,ERROR、WARN 等不同級別的日誌,會展示成不同的顏色,方便我們一眼就看出來有沒有錯誤日誌等。

預設的配色方案如下:
file

具體的顏色配置以及更多的功能,可以參考插件官網。

3.9 Maven Helper

插件官網:https://plugins.jetbrains.com/plugin/7179-maven-helper

平時我們的 maven 項目,會遇到一些依賴衝突的問題,比較難以排查和定位。有了這個插件後,能夠方便的顯示出來有哪些依賴衝突,而且還可以自動加上 exclude,操作界面如下圖:
file

3.10 RestfulToolKit

插件官網:https://plugins.jetbrains.com/plugin/10292-restfultoolkit

這個插件的作用是,幫助我們快速導航到指定 url 請求路徑的 controller 方法。平時我們的項目會寫大量的 controller 以及方法,來處理不同的 url 請求。
但是當代碼多了以後,很難找到某個 url 是哪個方法處理的,有了這個插件,就可以快速根據 url 導航到具體的方法。

file

快捷鍵是 cmd + \。

3.11 Rainbow Brackets

插件官網:https://plugins.jetbrains.com/plugin/10080-rainbow-brackets

這是一款提升 idea 顏值的插件。我們寫的代碼,經常會有很多嵌套的括弧,比如 get1(get2(get3())),這麼多的括弧嵌套,而且顏色都還一樣,會看得人眼花繚亂。有了這個插件,會給每一對括弧都顯示上不同的顏色,增加顏值的同時,也較方便的看出哪些括弧是一對:
file

好了,到這裡,推薦的常用插件就介紹完了。大家可以根據需要,自由安裝哪些插件。記住:插件雖好,可不要貪杯哦!

如果你也有好用的插件推薦,歡迎聯繫我,一起探討學習!

4. 高效配置

Idea 確實是一款非常非常優秀的 Java IDE。所謂好馬還得好鞍配,下麵介紹的一些高校配置,可以讓你使用 idea 的時候,更舒適、更高效!

4.1 import 自動導入包和刪除無用的 import

設置路徑:Editor -> General -> Auto Import。
勾選其中的 add on the fly 和 optimize on the fly,如下圖:
file

4.2 避免 import *

預設情況下,當 import 同一個包的 class 超過 5 個後,idea 會替換成 import *。但是通常我們不建議這樣寫,遵循的原則就是使用哪些就明確寫引用哪些!

設置路徑:Editor -> Code Style -> Java -> Imports。
將 Class count to use import with 、Names count to use static import with * 都設置為 999(預設都是 5),如下圖:
file

4.3 保存文件時自動去掉末尾空格

設置路徑:Editor -> General -> Other。
Strip trailing space on Save 選 All,如下圖:
file

4.4 智能提示不區分大小寫

設置路徑:Editor -> General -> code completion。
取消勾選 match case,如下圖:
file

5. 超好用的快捷鍵

這一章節,將推薦一些超好用的快捷鍵。有了這些快捷鍵的加持,不僅能夠節省你大量的時間,還能讓你寫出更優秀的代碼!

5.1 萬能提示神器:Alt + Enter

如果你只想記住一個快捷鍵的話,我推薦這個!Alt + Enter 是一個萬能提示器,可以用說是好用到爆炸

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ClickHouse高級 1. 執行計劃 在 ClickHouse 20.6 版本之前要查看 SQL 語句的執行計劃需要設置日誌級別為 TRACE 才可以看到,並且只能真正執行 SQL,在執行日誌裡面查看。在 20.6 版本引入了原生的執行計劃語法,併在 20.6.3.28 版本成為正式功能。 1. ...
  • ClickHouse入門 1. 簡介 ClickHouse 是俄羅斯的 Yandex 於 2016 年開源的列式存儲資料庫(DBMS),使用 C++ 語言編寫,主要用於線上分析處理查詢(OLAP),能夠使用 SQL 查詢實時生成分析數據報告。 1.1 列式存儲 以下麵的表為例: Id Name Ag ...
  • # 基礎語法 https://blog.csdn.net/m0_37989980/article/details/103413942 CRUD 提供給資料庫管理員的基本操作,CRUD(Create, Read, Update and Delete)。 1. 語法: select [distinct ...
  • 短視頻時代來臨,一部手機就可以玩轉多種花樣,所以越來越多的自由創作者加入這個行業,平時生活中用手機拍短視頻、街頭唱歌的非專業從業者隨處可見。離開了錄音棚,沒有專業、統一的錄音設備,無論在家裡還是在路邊、商場等地方,錄製的視頻帶噪音在所難免。所以在後期製作中,如何快速準確地處理雜訊至關重要。HMS C ...
  • 前言 【項目資源】longPressDemo 項目功能介紹 長按顯示菜單 【效果圖】 出發條目後,顯示提示信息 【效果圖】 項目技術支持 【開發環境】 Android Studio window11 【開發語言】 後端: Java 前端 xml 項目難點 如何設置出長按效果? 通過按鈕控制項綁定set ...
  • 題目:做一個電子時鐘,顯示當前的年月日,時分秒,要求自動變化。 案例分析: 1.使用一個div盒子來展示時鐘的內容; 2.將盒子在JavaScrip裡面獲取div盒子; 3.我們需要一個定時器setInterval每隔一秒使時鐘變化一次; 4.利用時間函數Date()獲取系統時間,並分別獲取年月日, ...
  • HashMap源碼 目錄 1.1 包含的屬性 1.2 構造器 1.3 hash方法源碼 1.4 put源碼 1.5 resize源碼 1.6 table 變數為什麼用transient 修飾 1.1 包含的屬性 public class HashMap<K,V> extends AbstractMa ...
  • 最近要給小伙伴們寫幾篇文章,關於《linux下誤刪除文件之後該如何恢復》。對於沒有進程占用的文件想要進行數據恢復,不同的文件系統格式需要使用不同的工具,比如:ext4、xfs等。我找遍了我所有的虛擬機伺服器,都沒找到ext4文件格式的。因為ext4畢竟還是非常常用的文件系統格式,我寫東西就希望能夠系 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...