Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
欲善其事,必先利其器!
就在不久之前,Java領域的開發神器IntelliJ IDEA終于迎來2021年的一個重要的大版本更新:IntelliJ IDEA 2021.1。
現如今大量的Java開發者深度依賴著這款開發軟件,正如網上的段子所言:“可以毫不夸張地說,多少Java程序員離開了IDEA就不會寫代碼了(狗頭)”,由此可見其使用的廣泛程度。
新版本一出來,我也迫不及待地想嘗試一番。當然,主力開發機我是不敢亂升級的,所以這兩天,我在一臺平時用來做測試的老開發本子上更新了全新的IDEA。
軟件啟動界面打開的那一瞬間,我就知道事情并不簡單。
更新后,全新的啟動頁面更加花里胡哨了。
軟件啟動速度也是非常之快,就我這多年苦練的火箭般手速,都差點沒截來下面這張啟動頁面圖。
JetBrains提供的Space這個功能不知道大家有沒有聽說過,講白了就是一套集成的團隊協作環境,可以提供包括構建交付、聊天協作、團隊管理以及項目管理等在內的一整套協作一體化解決方案。
最新的IDEA 2021.1把Space環境給無縫地集成進來了,現在屬于開箱即用的狀態,軟件的右上角就有快捷入口:
這個功能相信對于很多依賴Windows系統以及WSL功能的用戶來說,簡直是喜大普奔!
以前WSL就算再好用,但是你的IDE并沒有和它打通,多少總是一個遺憾。
這下好了,二者直接打通了,IDEA支持WSL 2。你可以直接在新版IDEA 2021.1中運行并開發WSL 2中的Java項目,包括Gradle類型項目和Maven類型等項目均支持。
Run Targets這個功能的意思有點類似于上面剛聊過的WSL 2。它允許開發者直接在遠程主機甚至在Docker容器上運行和調試項目。
所以到目前為止,新版IDEA 2021允許開發者可以在本地、WSL 2、SSH遠程主機、Docker等目標上運行項目,可以說賊香了!
這也算是一個比較重磅的更新。
近兩年來,Java版本的發布速度也是快如老狗,我還在用Java 8,它都淦到Java 16了。
關于Java 16的新特性,我還準備寫篇文章來詳細聊一聊呢,包括比如:
這次IDEA 2021版的一個很重要的更新就是加入了對Java 16的基本支持,注意是基本支持。
除此之外IDEA還新增了幾項檢查機制,典型比如更加智能的數據流分析檢查。
鏈式構造方式的優化格式設置等等。
目的都是為了幫助提升可讀性,進一步提升用戶體驗。
Code With Me是一項用于協作開發與結對編程的服務,可以實Host-Guest模式的“手摸手”(滑稽)結對編程和群體編程。
目前,新版IDEA開箱即用地支持了Code With Me功能,同時它還具有音頻通話和視頻通話功能,可以滿足隨時隨地的溝通需求,這操作簡直騷到爆。
版本控制
版本控制這一塊目前做了不少的更新,包括可以更快地完成PR的創建提交,支持PR模板。
變更提交至代碼庫前的自定義代碼檢查配置。
以及支持自定義Git提交模板等等。
以前在IDEA中預覽網頁得跳到外部瀏覽器,而現如今IDE的編輯器內部就支持Built-in級別的網頁預覽,只需要在右上角點那個IDEA小圖標即可激活,而且可以編輯網頁源碼時做到同步更新和預覽。
在Windows平臺的新版IDEA上,可直接在任務欄(或開始菜單)上右鍵快捷呼出最近使用的項目。
講白了,就是使搜索范圍更易于自定義,我們可以直接在設置中進行Scope定義,自行選擇External Dependencies的范圍是否包含。
當你對編輯器里的多個文件進行垂直窗口拆分時,雙擊某個Tab就可以將當前文件窗口最大化,再次雙擊Tab則會還原。
當然除了這些之外,新版IDEA還新增了很多更新和增強,比如:對Kotlin、Scala、JavaScript等語言的開發優化、對常見框架與技術的優化和支持、對Kubernetes和Docker的更新支持和改進、數據庫工具的更新支持等等,由于時間有限,在此就不一一贅述了,有需要的可以按需細究。
最后,讓我們一起大喊一句:“IDEA,yyds!”
DEA全稱是IntelliJ IDEA,是java編程語言開發的集成環境。IntelliJ在業界被公認為最好的java開發工具,尤其是智能代碼助手、代碼自動提示、重構、JavaEE支持、各類版本工具整合、代碼分析、創新的GUI設計等方面的功能可以說是超常的。而且他的旗艦版還支持HTML、CSS、PHP、MySQL、Python等。免費版只支持java,Kotlin等少數語言。
IDEA的特色功能
IDEA所提倡的是智能編碼,是減少程序員的工作,idea的特色功能有以下幾點:
●智能的選取
在很多時候我們要選取某個辦法,或某個循環或一步步從一個變量到整個類的慢慢擴充著選取,idea就提供這種基于語法的選擇,在默認設置中ctrl+w,可以實現選取范圍的不斷擴充,這種方式在重構的時尤其顯得方便。
●歷史記錄功能
不用通過版本管理服務器,單純的idea就可以查看任何工程中文件的歷史記錄,在版本恢復是你可以很容易的將其恢復。
●豐富的導航模式
IDEA提供了豐富的導航查看模式,例如crtl+E顯示最近打開過的文件,crtl+N顯示你希望顯示的類名查找框。在最基本的project視圖中,你還可以選擇多種的視圖方式。
● 編碼輔助
Java規范中提倡的toString()、hashCode()、equals()以及所有的get/set方法,你可以不用進行任何的輸入就可以實現代碼的自動生成,從而把你從無聊的基本方法編碼中解放出來。
● 靈活的排版功能
基本所有的IDE都有重排版功能,但僅有IDEA的是人性的,因為它支持排版模式的定制,你可以根據不同的項目要求采用不同的排版方式。
● XML的完美支持
xml全提示支持:所有流行框架的xml文件都支持全提示,誰用誰知道。
● 動態語法檢測
任何不符合java規范、自己預定義的規范、累贅都將在頁面中加亮顯示。
● 代碼檢查
對代碼進行自動分析,檢測不符合規范的,存在風險的代碼,并加亮顯示。
● 對JSP的完全支持
不需要任何的插件,完全支持JSP。
● 智能編輯
代碼輸入過程中,自動補充方法或類。
● EJB支持
不需要任何插件完全支持EJB(6.0 支持EJB3.0)
● 列編輯模式
用過UtralEdit的肯定對其的列編輯模式贊賞不已,因為它減少了很多無聊的重復工作,而IDEA完全支持該模式,從而更加提高了編碼效率。
● 預置模板
預置模板可以讓你把經常用到的方法編輯進模板,使用時你只用輸入簡單的幾個字母就可以完成全部代碼的編寫。例如使用比較高的public static void main(String[] args){}你可以在模板中預設pm為該方法,輸入時你只要輸入pm再按代碼輔助鍵,IDEA將完成代碼的自動輸入。
● 完美的自動代碼完成
智能檢查類中的方法,當發現方法名只有一個時自動完成代碼輸入,從而減少剩下代碼的編寫工作。
● 版本控制完美支持
集成了市面上常見的所有版本控制工具插件,包括git、svn、github,讓開發人員在編程的工程中直接在intellij idea里就能完成代碼的提交、檢出、解決沖突、查看版本控制服務器內容等等。
● 不使用代碼的檢查
自動檢查代碼中不使用的代碼,并給出提示,從而使代碼更高效。
● 智能代碼
自動檢查代碼,發現與預置規范有出入的代碼給出提示,若程序員同意修改自動完成修改。例如代碼:String str = "Hello Intellij " + "IDEA"; IDEA將給出優化提示,若程序員同意修改IDEA將自動將代碼修改為:String str = "Hello Intellij IDEA";
● 正則表達式的查找和替換功能
查找和替換支持正則表達式,從而提高效率。
● JavaDoc預覽支持
支持JavaDoc的預覽功能,在JavaDoc代碼中Ctrl+Q顯示JavaDoc的結果,從而提高doc文檔的質量。
● 程序員意圖支持
程序員編碼時IDEA時時檢測你的意圖,或提供建議,或直接幫你完成代碼。
這就是IDEA的優點,看完如需下載安裝包或pojie版本可評論留言
者介紹 | 梁桂釗——微微科技架構師
?
一、官方工具
IntelliJ IDEA 默認安裝并提供了非常多的工具,比如 Git Integration、Maven Integration、Markdown support、SSH Remote Run 等。其中有很多好用,但是不為人知的工具。
1. REST client
在日常開發過程中,我們或多或少都涉及到 API 接口的測試。例如,有的小伙伴使用 Chrome 的 Postman 插件,或者使用火狐的 restclient 等工具。事實上,這些工具是測試 API 接口非常有效的方式之一,筆者之前也一直使用 Postman 完成 API 接口的測試工作。今天,筆者推薦另外一個非常好用的小工具,能夠幫助讀者快速測試 API 接口。這個工具就是 IDEA 的 Editor REST Client。IDEA 的 Editor REST Client 在 IntelliJ IDEA 2017.3 版本就開始支持,在 2018.1 版本添加了很多的特性。事實上,它是 IntelliJ IDEA 的 HTTP Client 插件。詳細使用文檔,參考:http://blog.720ui.com/2018/restclient_use/
2. UML Support
如果需要研究源碼,內置 UML Support 插件可以很好地查看類繼承關系。詳細使用文檔,參考:https://www.jetbrains.com/help/idea/class-diagram.html
未完待續。。。
二、市場插件
1. 阿里代碼規約檢測
目前,插件檢測有兩種模式:實時檢測、手動觸發。詳細使用文檔,參考:https://github.com/alibaba/p3c/blob/master/idea-plugin/README_cn.md
此外,類似的插件還有 FindBugs 和 CheckStyle。
2. 快捷鍵提示工具:Key promoter X
Key Promoter X 是一個快捷鍵提示插件,如果鼠標操作是能夠用快捷鍵替代,Key Promoter X 會提示可以用什么快捷鍵替代。詳細使用文檔,參考:https://plugins.jetbrains.com/plugin/9792-key-promoter-x
3. 代碼注解插件:Lombok
lombok 的使用,參考 :https://projectlombok.org/。我們需要在代碼中引入三方庫,然后安裝 lombok 插件即可。
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>最新版本號</version></dependency>
4. 代碼生成工具:CodeMaker
開發過程中,經常手工編寫重復代碼。現在,可以通過 CodeMaker 來定義 Velocity 模版來支持自定義代碼模板來生成代碼。目前,CodeMaker 自帶兩個模板。Model:根據當前類生成一個與其擁有類似屬性的類,用于自動生成持久類對應的領域類。Converter:該模板需要兩個類作為輸入的上下文,用于自動生成領域類與持久類的轉化類。
詳細使用文檔,參考:https://github.com/x-hansong/CodeMaker
5. 單元測試測試生成工具:JUnitGenerator
單元測試是必不可少的!我們可以使用 JUnitGenerator 插件來自動創建了單元測試。我們可以使用提供的 velocity 模板定制單元測試輸出代碼。如果在已經存在單元測試的地方創建了單元測試,則會提示用戶進行覆蓋或合并操作。合并操作允許用戶有選擇地創建目標文件內容。詳細使用文檔,參考:https://plugins.jetbrains.com/plugin/3064-junitgenerator-v2-0
6. Mybatis 工具:Free Mybatis plugin
現在,MyBatis 框架已占領半壁江山。因此,圍繞著 MyBatis 的插件和工具越來越多。Free Mybatis plugin 非常方便進行 Mapper 接口和 XML 文件之間跳轉。詳細使用文檔,參考:
https://plugins.jetbrains.com/plugin/8321-free-mybatis-plugin。此外,收費版的還有 Mybatis plugin。
對于 Mybatis 的工具還有很多,比如 mybatis-log-plugin、codehelper.generator。此外,非 IDEA的工具有:Mybatis 分頁插件 Mybatis-PageHelper、Mybatis 代碼生成工具 mybatis-generator 等。地址:http://www.mybatis.org/generator/
7. Maven輔助神器:Maven Helper
如果 Maven 引入的 jar 包有沖突,可以使用 Maven Helper 插件來幫助分析。詳細使用文檔,參考:https://plugins.jetbrains.com/plugin/7179-maven-helper
8. JSON轉領域對象工具:GsonFormat
在開發過程中,我們可能會遇到 json 格式的字符串轉換成實體類參數的場景,這個插件可以根據 JSONObject 格式的字符串,自動生成實體類參數。詳細使用文檔,參考:https://github.com/zzz40500/GsonFormat
那么,如何使用呢?我們可以使用 GsonFommat 的快捷鍵,默認 option + s (mac), alt + s (win) 通過以下方式修改快捷鍵。或者點擊工具欄的 Generate 來喚起生成工具。
9. 領域對象轉JSON工具:POJO to JSON
為了測試需要,我們需要將簡單 Java 領域對象轉成 JSON 字符串方便用 postman 或者 curl 模擬數據。詳細使用文檔,參考:https://plugins.jetbrains.com/plugin/9686-pojo-to-json
10. 時序圖生成工具:SequenceDiagram
有的時候,我們需要梳理業務邏輯或者閱讀源碼。從中,我們需要了解整個調用鏈路,反向生成 UML 的時序圖是強需求。其中,SequenceDiagram 插件是一個非常棒的插件。詳細使用文檔,參考:https://plugins.jetbrains.com/plugin/8286-sequencediagram
11. 字符串工具:String Manipulation
String Manipulation 插件提供了非常豐富字符串工具,例如命名替換( (camelCase, kebab-lowercase, KEBAB-UPPERCASE, snakecase, SCREAMINGSNAKE_CASE, dot.case, words lowercase, Words Capitalized, PascalCase)等。
詳細使用文檔,參考:https://plugins.jetbrains.com/plugin/2162-string-manipulation
12. 代碼作色工具:Rainbow Brackets
Rainbow Brackets 插件可以實現配對括號相同顏色,并且實現選中區域代碼高亮的功能。
詳細使用文檔,參考:https://plugins.jetbrains.com/plugin/10080-rainbow-brackets
事實上,代碼作色之后,可以非常方便我們閱讀。類似的工具還有:Grep Console 來自定義設置控制臺輸出顏色等。
13. RESTful 服務開發輔助工具集: RestfulToolkit
開發中,經過會根據 URI 的部分信息來查找對應的 Controller 中方法,RestfulToolkit 提供了一套 RESTful 服務開發輔助工具集,提供了如下功能:
根據 URL 直接跳轉到對應的方法定義 ( Ctrl \ or Ctrl Alt N ); 提供了一個 Services tree 的顯示窗口; 一個簡單的 http 請求工具; 在請求方法上添加了有用功能: 復制生成 URL;,復制方法參數... 其他功能: java 類上添加 Convert to JSON 功能,格式化 json 數據 ( Windows: Ctrl + Enter; Mac: Command + Enter )。
詳細使用文檔,參考:https://plugins.jetbrains.com/plugin/10292-restfultoolkit
14. 日志工具:Grep Console
參考:https://plugins.jetbrains.com/plugin/7125-grep-console
不同級別日志通過顏色區分,一路了然
高亮日志
便捷檢索日志
15. 生成對象set方法:GenerateAllSetter
開發中,有時可以通過BeanUtil等工具類進行對象之間的屬性拷貝,但有時候也需要手工進行賦值。通過GenerateAllSetter,可以一鍵生成對象的所有set語句。
16. Redis可視化:Iedis
參考:https://plugins.jetbrains.com/plugin/9228-iedis
使用參考:https://codesmagic.com/iedis/userguide/getting-started 可方便的執行增刪查改及使用命令行進行操作。
17. K8s工具:Kubernetes
參考 https://plugins.jetbrains.com/plugin/10485-kubernetes 支持編輯 Kubernetes 資源文件,如下:可以比較方便的查看yaml中的各項 placeholder 的默認值,且可以方便的鏈接到value位置。
18. 中英文翻譯工具:Translation
最騷的操作是什么?一位小伙伴說過:說到了變量命名,先用中文寫好,然后用 Translation 插件的 translate and replace 一鍵替換為英文,這樣效率高而且準確。詳細使用文檔,參考:https://plugins.jetbrains.com/plugin/8579-translation
*請認真填寫需求信息,我們會在24小時內與您取得聯系。