前言
千呼萬喚始出來!自從官方在 2020-01-20 發佈了其 2020 年的 Roadmap 後,我便持續關注著、期待著 JetBrains IntelliJ IDEA 在“新 10 年”的首個版本的發佈。這不,就在 4 月 9 日,發佈了其“新 10 年”的首個版本 —— IntelliJ IDEA 2020.1。
按照國際慣例,作為大版本號的升級,一般都會“搞點事情”,而事實確實如此(包括了支持中文)。
說明:2020 是 JetBrains 公司成立 20 週年,小夥子是 20 歲的大男孩了。
What’s new(新特性)
IntelliJ IDEA 2020.1 添加了對 Java 14 的支持、為部分 Web 和測試框架添加新功能,通過數據流分析輔助升級了調試器,新增了 LightEdit 模式,以及支持從 IDE 直接下載和配置 JDK 等!
1、支持 Java 14
2020 年 3 月 17 日,Oracle 的 JDK/Java 14 正式 GA(General Available),這是自 Java 採用六個月一次的發佈週期後的第五次發佈。
“咱們”IDEA 順序跟上,提供了支持其新特性。除了針對 record 提供完整的代碼洞察支持,IDE 還允許用戶快速創建新 record,生成其構造函數與組件,以及對既有錯誤發出警報。另外,IDE 現已支持 instanceof 運算符的模式匹配,其中包括新的檢查以及快速修復,後者用簡潔明瞭的新模式變量快速簡化了冗長的 instanceof-and-cast 慣用代碼。
2、從 IDE 直接下載 JDK
當你還在吐槽現在 JDK 下載起來越來越麻煩的時候,IntelliJ IDEA 此舉會不會讓你感動到哭?
您無需再從網絡中搜索不可或缺的 JDK。從 IntelliJ IDEA 2020.1 開始,在創建並配置項目時,您可以直接從 IDE 下載並配置 JDK 構建。如果您打開下載的項目,IDE 將檢查計算機是否安裝了為此項目配置的 JDK。如果未安裝,IDE 將提示您下載 JDK。當然你也可以自己主動下載:
下載 JDK 的 vendor 源可以有多種可選(木有官方正統的 Oracle 喲~):
3、更好的 Java 代碼檢查
在 IntelliJ IDEA 的每個新版本中,都會擴展其靜態代碼分析功能。此版本也不例外。除了上述改進外,還新增了多項代碼檢查。它們可以檢查 SimpleDateFormat 模式中的大寫字母,分析日期格式設置,搜索其他冗餘方法調用,以及報告並建議消除字符串文字中多餘的轉義字符等。
4、LightEdit 模式
“輕編輯”模式,用意是用來作為簡單的文本編輯器。IntelliJ IDEA 2020.1 增加了期待已久的 LightEdit 模式。如今,用戶無需創建或加載整個項目,即可在類似文本的編輯器中快速修改獨立文件。您可以從命令行,IDE 的歡迎屏幕或操作系統文件管理器中,在此新的輕量級編輯器中打開文件。此外,使用“Open File in Project” (Alt+Enter) 意圖,可以從 LightEdit 模式切換至完整項目模式。
想法是好的,但我感覺有點雞肋:還要通過命令行模式打開,並且有編輯功能的閹割~
5、Javadoc 渲染
這個小功能本人非常的喜歡,照顧到了愛好讀源碼一族。在編輯器中閱讀 Javadoc 可能令人不勝其煩。此類文本中充斥著各種標記,在需要與參考鏈接和圖像進行交互時,更是雪上加霜。正因如此,IDEA 在編輯器中增加了一種渲染 Javadoc 的方法。通過 Help | Find actions | Render documentation comments on file opening 可以啟用此功能。
提個小建議:渲染後就不能鼠標選中 or 複製了,期望可以選中和複製,這樣講課起來做示例會方便很多。
6、改進的導航欄/麵包屑欄
這個小功能我也是非常的喜歡,當然我平時使用快捷鍵會更多,但也還是喜歡此功能。IntelliJ IDEA 2020.1 提供了一種新選項來簡化項目導航。新導航欄可以顯示 Java 類和接口中的方法,用戶無需滾動屏幕,即可直接跳轉到需要在文件中查看的行。如果之前很少使用導航欄,那麼何不體驗一下這項功能。通過 View | Appearance | Navigation Bar 即可將其打開(默認就是打開的)。
7、Zen 模式(禪模式)
很高級有木有,對於快捷鍵控,平時工作中我個人還挺喜歡使用這種模式編碼,投入度高效率就高了。
IntelliJ IDEA 2020.1 在編輯器中引入了新的 Zen 模式。這種模式有助於消除所有干擾項,使您可以專注於源代碼。Zen 模式將“免打擾模式”和“全屏模式”完美融合,無需同時開啟這兩種模式。從主菜單中選擇 View | Appearance | Enter Zen Mode,全身心沉浸在代碼世界中。
禪模式下的全屏截圖如下:
8、調試器:數據流分析輔助
該功能挺不錯的,輔助你調試,提高調試效率。
IntelliJ IDEA 2020.1 為 JVM 調試器新增了數據流分析功能。在代碼實際執行前,這項功能可對執行情況進行預測。當應用程序在斷點處停止時,IDE 將根據程序的當前狀態執行數據流分析,檢查/預測接下來的運行結果。要在調試器中使用 DFA,請在 Settings/Preferences | Build, Execution, Deployment | Debugger | Data Views | Java 下啟用該功能(默認是啟用的)。
9、調試器:屬性置頂
又是一個非常非常實用的小功能。簡單的說,你在調試的時候呢,有些對象的字段太多了,要去找他有時候還要翻頁或者下拉很多,一般 IDEA 調試可能要走好多遍代碼,你現在在第一次調試後,吧這個調試的字段置頂,以免老是要去找。
10、初步支持 HProf 快照分析
.hprof 文件一般指的是內存快照文件,用於做 JVM 內存溢出分析。之前 IDEA 一般藉助 jvisualvm.exe 這個好用的工具來打開/分析此文件,現在 IDEA 內置就支持啦。
IntelliJ IDEA 2020.1 可以打開 .hprof 內存轉儲文件,這種文件有助於識別內存洩漏,並找到優化內存使用率的方法。例如,您可以查看總體大小、實例數量以及堆棧跟蹤等基本文件信息。這些文件還列出了按類分組的所有根對象、按實例數或大小排序的所有類以及帶有字段值查看器的所有類實例。
- 使用 Demo
先使用 jmap -dump:file=test.hprof,format=b 你的 pid 拿到一份 dump 文件:test.hprof。然後使用 IDEA 的此功能把該文件讀取進來:
文件讀取進來後,可在其“專屬視窗”看到分析結果:
需要注意的是:這項功能目前處於早期階段,功能相對撿漏,後續的主要版本中將繼續改進,加入新的功能。
11、Git 交互體驗優化
此版本在 Git 的交互體驗上做了優化,使得使用起來確實更得心應手了。
- 新 Commit 工具窗口:
可通過此頁面右上角的小齒輪,switch 切換為彈窗模式:
前者若想生效,你需要配置它成為默認的 commit 窗口模式,如下截圖所示:
對應的,還會衍生出 Git 其它操作中一些新的交互方式,見下圖們:
這個小功能非常贊:可以搜索分支以及刷新啦。
12、改進的 HttpClient 工具
IntelliJ IDEA 2020.1 中的 HTTP 客戶端更加智能。現在,它可以正確地自動補全路徑變量和 URL 路徑,引導用戶直接從 HTTP 請求文件訪問相關端點。IDEA 還為 Spring 用戶提供了一項更新:Spring MVC 處理程序方法現在獲得了指示 URL 映射的間距圖標。使用它可以創建或打開現有的 HTTP 請求文件並導航到 HTTP 客戶端。
13、統一的淺色主題
IntelliJ IDEA 2020.1 將新的淺色主題作為其在所有操作系統中統一使用的默認主題。IntelliJ 推薦你使用!但是像我用習慣了我的“自定義白色系主題”,所以我會切換回來的,看個人習慣嘍~
另外它默認使用的 JetBrains Mono 字體,若你不喜歡你也可以改回自己原來的。
此字體據說評價不錯,但我習慣了之前的,那就改吧。
14、小彩蛋:支持中文
這算此版本給的一個小彩蛋。需要注意的是:源生是不支持中文的,需要你額外下載 Chinese (Simplified) Language Pack 這個由官方提供的簡體中文插件:
漢化後的效果如下:
感謝捷克工程師(可能是由國人實現)對我大天朝程序員的“照顧”,且不說這個必要性到底有多大,但從側面體現了我國 IT 產業在國際上的分量越來越重了,這是一個好的信號,是我們的驕傲。
由於插件還是 EAP 版本,所以有些地方漢化不是非常徹底,不過絕大部分都是很 OK 的。程序員“老鳥”一定會覺得漢化的 IDE 很 low,但很明顯這對新手是非常友好的。
15、其它
- 更好的框架支持
對 Spring WebFlux、Spring、JMS、RxJava、Swagger Codegen...等最主流框架均做了些許更好的支持,你使用過程中自會體會到的。
- 對 Docker、Kubernetes 更好支持
為了便於您從 Docke 註冊表中拉取映像,此版本重新設計了 UI 並移除了彈出對話框。現在,只需點擊 Service 工具窗口左側窗格中的 Images 節點,IntelliJ IDEA 即可在右側窗格中打開 Images Console 選項卡,您從中可以輕鬆拉取映像。IDE 還為映像提供了補全功能。
Kubernetes 方面:通過直接從編輯器間距調用“Apply”命令,您可以更新 Kubernetes 集群,從而匹配在本地文件中定義的狀態,使用中自行體會哈。
- Maven/Gradle 自動導入更加智能
使用中會體會到。
- 支持 Scala 3
說明:初步支持,隨著 Scala 3 的發展也會逐漸提供更多支持。
- 拆分 Terminal 終端會話
這個小功能也非常好用。此版本新增了垂直或水平拆分終端會話的功能,便於用戶並行運行多個會話。您可以從終端調用上下文菜單來創建、導航和關閉拆分的終端會話。
- 運行配置可存儲到文件
這個小功能非常不錯,特別適合團隊協作。從 v2020.1 開始,運行配置可以靈活存儲於項目文件夾中。為此,請打開 Run/Debug Configurations 對話框,選中右上方的 Store as project file,然後點擊齒輪圖標。之後將打開一個彈出窗口,您可以在其中選擇運行配置的存儲位置。
- 徹底過度到 JBR11 版本
從此版本開始,JetBrains Runtime 8 (JBR8) 已成歷史,已徹底過渡到 JetBrains Runtime 11 (JBR11)。
總結
作為 2020 年的第一個版本,有點“跨時代”的意思,帶來的新特性們還是可圈可點的。
升級建議:如果你不是“正經付費黨”,再次提示你:升級需謹慎哦(當然嘍,若純從使用角度來說,我本人是強烈建議你使用它的)。
最後,依舊要向那些孜孜不倦為 IT 行業提供優秀工具的人們致敬!!!特別是捷克的那些創造者們,你們創造了非常好的工具提高了生產力,推動了社會某些產業的進步,功勳卓越!!!
優逸客(微信公眾號sx-uek)UI設計、Web全棧開發、JAVA開發等課程免費試聽課火熱報名中,願這個時代的每個人都可以站在風口,成就更好的自己!
4月學習堅持不懈,9月就業傲視群雄!
閱讀更多 優逸客 的文章