IntelliJ IDEA 2023.1正式發(fā)布,Maven項目大提速&支持Apache Dubbo
先來張啟動圖感受一下:
這是2023.1版本的啟動圖:
?正文?
官方對此版本的新變化總結:在 IntelliJ IDEA 2023.1中,我們根據(jù)用戶的寶貴反饋對新UI做出了大量改進。我們還實現(xiàn)了性能增強,從而更快導入 Maven,以及在打開項目時更早提供 IDE 功能。新版本通過后臺提交檢查提供了簡化的提交流程。IntelliJ IDEA Ultimate 現(xiàn)在支持 Spring Security 匹配器和請求映射的導航。
??what’s new(新特性)
JetBrains 去年就已宣布了新UI(可參考筆者上篇IDEA文章),并表示要逐步且徹底改造新UI,為開發(fā)者提供更現(xiàn)代、可定制和用戶友好的界面,從而改進整體的編碼體驗。
除了UI之外,我們再來看看本次版本的主要新特性Feature。
導入Maven項目大提速
官方數(shù)據(jù),提速約40%:
筆者親測(導入的Spring Boot項目為例):肉眼可見的提速了,導入的項目越大對比越明顯。至于有沒有達到官宣的提速40%,因項目而異。但,那不重要,實實在在的更快了就行。
支持Apache Dubbo
國人之光。
IntelliJ IDEA官方提供插件來支持Apache Dubbo項目的開發(fā),提供了內置支持的更友好的提示,足以見得Apache Dubbo的影響力還不錯了,這是來自神秘東方力量。
雖然現(xiàn)在并非默認就內置此插件,需要手動下載。但已經(jīng)很不錯了。畢竟提名即肯定!
Compact Mode(緊湊模式)
新UI自上個版本(2022.3)就有了,筆者也是一直在使用。IDEA會持續(xù)優(yōu)化它,Compact Mode(緊湊模式)這個新特性就只針對新UI:
Tips:緊湊模式默認并未開啟,需要你手動設置啟用(如下圖)
緊湊模式簡直就是命中了筆者的G點,大愛。放兩張對比圖自行感受下:
緊湊模式:
普通模式:
降低了工具欄和工具窗口標題的高度、縮小了間距和填充,圖標和按鈕也都縮小了一番,一致性非常好也非常和諧,很適合喜歡緊湊型布局的同學,比如我。
編輯區(qū)的可視區(qū)域又大了一丟丟,似乎效率又能提升一咪咪了?
支持Project的多tab選項卡
作為一個Javaer,打開5+甚至10+個工程乃稀疏平常之事,當你查看所有窗口想查找到某個之時,看到的就是一個字:亂,所以定位稍顯困難。
IDEA團隊當然也意識到了這個問題,所以此版本在同一個窗口對多Project提供了多tab支持,如下圖:
這樣多個project只需占據(jù)一個窗口即可,清爽多了:細心的你會發(fā)現(xiàn)窗口名顯示為了與project無關的IntelliJ IDEA
其實早在上上個版本(2022.2)是支持project多tab頁的,只是在2022.3版本給“弄沒了”,現(xiàn)在可謂是又回歸了。
PS:官方說此功能目前只支持Mac版本,不清楚Windows現(xiàn)在有沒有,體驗過的同學可分享下
值得一提的是:筆者其實并不喜歡此功能,原因是project的tab之間切換不方便:沒有找到切換快捷鍵,得用鼠標點擊,效率遠不及Mac窗口切換那么絲滑高效。期待下個版本能解決此事:
- 提供project的tab之間切換的快捷鍵
- 設置項里可打開/關閉此功能
在項目打開時更早提供IDE功能
IntelliJ IDEA的代碼提示、各種檢索功能都是基于index索引:IDE在打開項目時會掃描項目將必要的索引加入到內存(知道IDEA為何這么吃內存了吧),從而提供更好的代碼提示服務。因此在打開項目之初都能看到這樣的進度條:
項目越大,Scanning的時間越長。在之前版本里:Scanning files to index完成之前,用戶是沒法使用代碼提示、各種檢索功能的,程序員此時能做的只有等待。
此版本后,這一點得到了改善:Scanning結果逐步交付。說人話:即使Scanning還沒100%完成,IDE的一些功能也可使用了。解釋詳細點:如果你正使用的功能依賴的index已完成,就可正常使用,而無需等到所有index完成后再使用。
在新版本里,檢索時你可能看到如下圖字樣,也就是這個原因。
增強的Java檢查
IDE除了檢查基本語法確保編譯正常外,還會幫助對代碼進行規(guī)范性、合理性檢查,目的是幫助開發(fā)者提升程序性能,以及保持代碼的干凈。舉幾個例子:
優(yōu)化冗余的String操作:
contentEquals?是JDK 5的方法,對比較CharSequence?時的最佳選擇,比equals?方法更優(yōu)。比如本例中,如果使用equals?方法,sb先執(zhí)行toString()?,而StringBuilder的toString()方法執(zhí)行了new操作,多產生了一個String中間對象:
這必然就降低了一丟丟性能,而contentEquals?就無此擔憂(至于原理,感興趣的同學可去看看String#contentEquals源碼)。
以后String和?CharSequence?類型進行相等判斷時,推薦使用?contentEquals()?方法,比equals方法更好。
方法同一返回值檢查:
此方法雖然有兩個return分支,但返回的都是2,新版IDEA就會提示你可以優(yōu)化優(yōu)化了。
支持多返回值的Extract Method
將多行代碼提取到一個方法里,是開發(fā)中借助IDEA常見的操作,合理使用能把邏輯編排得更清晰,降低理解成本。但是,如果Extract Method時遇到需要多個返回值,在老版本IDEA里是不允許你提取,而這在新版本IDEA可以了,它會引導你分步進行。
選中需要提取到方法內的代碼,按下command + option + m即可按照IDEA的提示完成方法提取操作
- 若多個返回值,則先搞個private static的內部靜態(tài)類來裝載結果
- 將選中的代碼放到新提取的方法體內,返回剛定義的靜態(tài)內部類對象
結果如下:
值得分享的是:方法提取固然好,但使用不當一方面反而會讓邏輯變得更錯中復雜、晦澀難懂,另一方面也會暴露自己的能力短板,造成破功,因此建議謹慎為之。
全IDEA縮放
如果你做分享較多,或者是個UP主,這個功能是很贊的。
當然你也可以在頂部菜單欄里快速調整:
和之前版本的IDEA不同:它是全IDEA縮放。很適合想整個IDEA同比例放大的情況,如團隊分享時、當UP主直播編碼時。
VM Options字段中的自動補全
這個功能還不錯,早就應該提供了,不然每次都得CV,效率不高。
雖然好用,但親測提示得并不全,有的還是得CV,但聊勝于無。
??其它升級
- 支持Java 20
- 支持Spring Security 6
- 更好的支持Scala 3
- 添加了預定義新項目的 Actions on Save 行為的選項
- 針對Windows系統(tǒng):當Microsoft Defender運行時,IntelliJ IDEA 現(xiàn)在建議重新配置防病毒設置以獲得更好的 IDE 性能
- 檢索:支持使用正則表達式來創(chuàng)建搜索和替換
- Markdown格式文件功能增強了:如intention action和Fill Paragraph功能,以及專門的Markdown preferences管理頁
?總結?
每次軟件升級,我的建議就一個字:升。大不了bug多再回退嘛,而這明顯是小概率事件。
最后呼吁一句:m系列處理器 MacOS 13.3,屏閃問題什么時候能徹底解決?
升級到新版本IntelliJ IDEA后有所改善,但依舊沒有根治,有木有同樣情況的同學?