自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何高效地使用IntelliJ IDEA

開發(fā) 前端
鑒于事實,我在文首還是先介紹下自己使用IDEA吧。不過話說在前頭,任何時候都是人外有人,天外有天,我寫的所有文章、教程、做的所有視頻都僅限于我當時所處的認知范疇,絕不代表最好、最深。

[[415695]]

本文轉(zhuǎn)載自微信公眾號「BAT的烏托邦」,作者YourBatman。轉(zhuǎn)載本文請聯(lián)系BAT的烏托邦公眾號。

正文

我如何高效使用IDEA?

鑒于事實,我在文首還是先介紹下自己使用IDEA吧。不過話說在前頭,任何時候都是人外有人,天外有天,我寫的所有文章、教程、做的所有視頻都僅限于我當時所處的認知范疇,絕不代表最好、最深。

由于我個人比較注重工具的使用,所以我對每次自己寫出來的代碼不管是排版、還是質(zhì)量、還是寫代碼的效率都非常自信,這種效率提升IDEA功不可沒。還有每次我在公司內(nèi)分享,很多時候都會一字一句的現(xiàn)場編碼實時演示,卻一點都不怯場,這很大程度上也來自于我對IDEA的熟練掌握。

可能一不小心點破了一個小現(xiàn)象:很多時候(特別是較小范圍分享時)不是主講人不編碼給你看,而是編碼容易露餡出自己連“飯碗”都用得不太熟練的尷尬

筆者2015年8月入行的是一家外包公司(關于筆者送外賣->程序員轉(zhuǎn)行經(jīng)歷,有興趣的可點這里),用的MyEclipse 10,就是它,現(xiàn)在回看是古董了有木有:

[[415696]]

離開第一家公司后開始用STS(Spring Tools Suite),當時其他同事都用Eclipse而我用STS,因為對Spring框架的支持度更好:

直到2017年8月份,在新公司第一次接觸到IDEA。

這里面還有個小插曲:剛開始接觸使用IDEA時感覺十分不順手,所以在長達1個月多月的時間里我都是STS + IDEA雙用:

  • 在STS上開發(fā)、看代碼
  • 在IDEA上拉取代碼、提交代碼

果不其然,出問題了:我不小心把eclipse工程的相關文件提交到了git倉庫,導致組內(nèi)其他人拉取代碼時出現(xiàn)了一系列莫名其妙的問題,浪費了他人時間。我深刻記得當時被領導和一些同事直呼業(yè)余!!!當時寶寶心里很苦,心里還在反抗:STS/Eclipse這么好用還免費為啥偏要用IDEA呢?

殊不知,那會IDEA早已全面超過Eclipse,這個歷史背景在我這篇文章里有提及:

為此,我痛定思痛完成自己學習后,就逐漸開始了我的IDEA“布道”之路:向個人、團隊內(nèi)、公司內(nèi)分享這個Java程序員開發(fā)利器。IDEA作為一款IDE(集成開發(fā)環(huán)境),功能不可謂不強大,缺的就是你的探索。

對我自己而言,最能提升我效率的主要有亮點:

  • 快捷鍵
  • 主題

快捷鍵

早些年如果你對在命令行里敲來敲去的同學心生羨慕,那么在工程開發(fā)場景下應該會對快捷鍵使用666的同學贊嘆不已。

快捷鍵我們天天都在用,畢竟這幾個鍵大家都很熟:

[[415697]]

對我而言,我覺得快捷鍵對提升開發(fā)效率是立竿見影的,它就是一種捷徑。所以在我學IDEA的那會,會用有道云筆記記錄下我用的快捷鍵,有70+個“之多”:

我最常用的大概有近50個,經(jīng)過幾年的反復“練習”,這50個已經(jīng)形成了肌肉記憶,對我效率提升非常大。

Tips:任何事情不是越多越好??旖萱I也是一樣,只有常用,快捷鍵設置得才具意義。

主題

如下圖,這是我正在使用的IDEA主題。

2012年2月,IntelliJ IDEA發(fā)布了暗黑主題,瞬間提升了工程師的B格,從此找女朋友好像容易了許多。正所謂外行看熱鬧,內(nèi)行看門道,主題絕不能說明一個工程師編程水平的高低,但為何我覺得它是我的提效利器呢?

我當然同意主題不能代表工程師的編程水平,但并不妨礙它幫我提效。這個主題樣式其實是從我開始使用MyEclipse就一脈相承過來的,我先說說它對我的幫助:

  1. 我喜歡暗色調(diào),所以暗色調(diào)整體看上去我會覺得舒服
  2. 顏色都是我自己定制,所以整體呈現(xiàn)出來是我最喜歡的格調(diào)
  3. 每個顏色自己會說話。這是最最最重要的一點,比如以我的主題為例:
  • 純黑色:interface接口
  • 灰黑色:abstract抽象類
  • 淺灰色:@annotation注解
  • 綠色:class類
  • 粉色:成員屬性
  • 紅色:定義局部變量
  • 紅色+斜體:使用局部變量
  • .......太多了,不用一一例舉

快捷鍵和主題是對我提效幫助最大的兩方面,當然還有很多其它較小的方面的設置。文后我會將我這么做的一些思考和建議分享給你,供你參考,酌情取之。

為什么有的大神認為使用記事本寫代碼很牛逼?

這源自知乎上的一個提問:

其中有幾個回答我覺得還蠻有意思:

  • 能跑馬拉松的人自然比開車42公里的人牛逼。但是你出門走42公里不開車用跑的那就是SB了...
  • 啊?為什么不是有的 菜鳥 認為用記事本寫代碼很牛逼?大神 才沒空關心這些呢...
  • 實在沒有IDE可用的情況下能用記事本熟練coding,確實nb。放著IDE不用非要用記事本coding顯示自己多nb,大神也sb??倳幸恍┬“讓Υ笊駛冊跇O端情況下的無奈之舉頂禮膜拜,為虛榮心強的大神披上了皇帝的新衣
  • ......

總之我覺得,如果能在記事本上飛舞的碼代碼的大神,那么使用IDEA這種工具的話它的效率99.9999%可能性會更高。我記得曾經(jīng)有個讀者跟我私聊,說面試官讓他在紙上(或者在電腦上用記事本)寫一個控制臺輸出hello word的程序,要求很簡單:能javac直接編譯運行。然后,他掛了!

可能有人會覺得問這種面試題沒有意義,畢竟沒有人會在記事本上寫Java。但誰讓現(xiàn)在面試就是這么卷呢?作為開發(fā)工程師,最終不就是拼這些么,正如郭德綱所說:相聲拼到最后拼的是文化。

為什么IDEA“不卡”?

IDEA和Eclipse哪個更好,這似乎是一個沒有標準答案的提問,但市場會給出解答。在我細目中,那必然是IDEA更好,還是用我有道云筆記上記錄的一句話來解釋:

(相對)不卡,解決方案一般只有一個:大量使用內(nèi)存,用空間換時間。所以IDEA吃內(nèi)存不是蓋的(只打開了2個項目):

在現(xiàn)在存儲價格越來越低的趨勢下,這么做顯然是值得的,蘋果系產(chǎn)品也是這樣為之??纯茨愕膇Phone、iPad、Mac是不是內(nèi)存長期占用85%以上高居不下。不同于CPU的算力,內(nèi)存這種資源,不用也就等于浪費。

為此,開發(fā)者均愿意為此買單而擁抱IDEA。當然啦,內(nèi)存大了怎么使用也是很重要,這就是IDEA與Eclipse拉開差距的“核心競爭力”了:索引。

無處不在的索引

作為程序員,對索引二字我們并不會陌生。比如最長接觸的數(shù)據(jù)庫索引:只有SQL慢,加索引一般能解決90%以上的問題;還有比如Mac的文件搜索系統(tǒng)索引:

索引有兩個明顯的特點:

  1. 能夠大大提高查找的效率
  2. 只需創(chuàng)建一次
  3. 創(chuàng)建時往往比較耗時(數(shù)據(jù)越多越耗時)

在IDEA里,當打開一個新項目 or 點這個按鈕重新啟動時:

你一般會經(jīng)歷一個較為“漫長”的建立索引過程,這個過程一般是阻塞式的,你什么都干不了(新版本的IDEA對此有優(yōu)化,有些步驟可并行):

為當前工程的文件,建立索引

為Spring體系依賴建立索引

為其它依賴建立索引

為JDK建立索引

這個過程可能比較耗時(項目越大、依賴越多就越耗時),并且十分耗CPU資源,所以這個時候你的CPU風扇很可能會高速轉(zhuǎn)起來,就像這樣:

正因為IDEA創(chuàng)建了這么多的索引,所以代碼提示、懂你的智能提示、代碼自動修復等就成為了可能,最終給與你的體感就是IDEA好像不怎么卡!

正確使用IDEA的姿勢和思考

下面我僅結(jié)合自己的理解,給些比較常用的、IDEA的最佳實踐以及我的思考,供以你參考,酌情獲取。

查找類class

這個功能是最常用,同時也是我最想拿出來說的。說實在話,我眼睛看到的幾乎一半 同學想要找到某個class類時,用的它:

不知看到這個搜索結(jié)果你會是什么感覺?明明只需要找到Application這個類,為毛搞出這么一大片搜索結(jié)果呢?看得人眼花繚亂~

這當然不能怪IDEA,是你姿勢不對嘛。這個功能叫全文檢索,也就是說只要標題/內(nèi)容包含關鍵字就匹配,它的能力非常強大,同時也相對來講更耗性能,更容易造成電腦卡頓。

注意:該搜索只搜索內(nèi)容,不搜索標題/文件名。好在一般來講Java中的類

顯然用它查找class類并不合適,干擾項特多了。最佳實踐應當是它(Navigate -> Class...):

它專用于檢索查找class類(包括內(nèi)部類)源文件(也就是.java源文件)。默認情況下找的是當前project,若要查找jar包里面的類(如JDK、Spring里的),僅需點擊右上角改變查找位置即可:

新版本的IDEA越發(fā)聰明了,好似能做到自動切換,想你所想,大部分情況下都是準的。若需要切換,我還是建議你用快捷鍵完成快速切換而不是用效率較低的鼠標。

總的來講,用這個功能來查找class類效率最高,并且最為精準,所以是最佳實踐。

查找文件file

舉個例子:我們經(jīng)常遇到要找到application.properties/yaml配置文件去寫配置,一種方式是一層一層的打開文件夾,另一種當然是更快的方式:查找嘍。

這個時候,很多同學依舊拿出自己的“全文檢索”:

woho,不靈了!原因其實上面已經(jīng)提到了:這個搜索只檢索內(nèi)容,而不檢索標題。

所以你可以用下面這個方式,它才是最佳實踐(Navigate -> File...):

畢竟大部分時候我們都是根據(jù)文件名而非文件內(nèi)容去找文件。

Project視窗放在右邊

如果說上面兩項是我的“強制”建議,那么這個只是我的一個小小建議,請根據(jù)個人習慣參考使用。

看到下面這張圖,不知你作何感想:本來諾達可視區(qū)域,代碼區(qū)域竟只剩1/5左右了。

據(jù)我所知這是很多開發(fā)同學的常態(tài),特別是在debug斷點調(diào)試的時候,可視區(qū)域可能更小。好不容易買塊外置顯示器大屏幕...

雖然說這和個人窗口管理的習慣有關(有人愛整潔,有人邋遢嘛),我這里推薦一個把project視窗放在右邊(一般左邊也只會放project,所以這里我只強調(diào)project視窗哈)的解決方案。我的理由如下:

  • 第一點,也是最重要的一點。它能讓最重要代碼區(qū)域具有穩(wěn)定性。我們都是從左向右寫代碼,而每行代碼的長度一般是不會太長的,因此大部分情況下代碼區(qū)域的右邊會大量留白,所以理應利用起來
  • 第二點,視窗都放在右邊,能確保代碼區(qū)域的視覺穩(wěn)定性。若視窗在左邊(如project視窗),我們把它收起or展開,會讓代碼區(qū)域一會左移一會右移,視覺上也更容易累些
  • 第三點,幾乎沒有視窗需要一直獨占空間區(qū)域,所以放在一邊管理起來,共享性會更好。從而就可以省出更多空間區(qū)域用于顯示代碼

當把視窗統(tǒng)一放在右邊后,代碼顯示區(qū)域得到明顯提升(且更穩(wěn)定),即使是debug也不怕:

當然,當然,當然,一切以你的習慣為準。

云化自己的IDEA配置

IDEA從下載下來,到順手的使用,需要做的步驟其實還是比較多的。比如:

  • 字體大小
  • 字體風格
  • tab風格
  • 關閉拼寫檢查
  • 智能提示是否區(qū)分大小寫
  • 單行函數(shù)
  • 自動折疊
  • ...

這些小配置設置起來不難,花點時間弄弄即可。但是,若:

  • IDEA卸載(干凈)重裝
  • 換臺電腦

對于失去的已經(jīng)習慣了的配置,是不是想死的心都有了?還好IDEA有配置導出的能力,可以導出一個jar包,新的IDEA導入這個jar即可。但更安全、方便的辦法是將配置云化。

起初IDEA還不支持云存儲的時候(沒記錯的話應該是2019年6月之前的版本),我的做法是把這個jar云存儲起來,我就是放在有道云筆記里的:

現(xiàn)在好了,IDEA支持云存儲了:

它支持兩種方式:

跟著JetBrains賬號走

  • 優(yōu)點:最方便
  • 缺點:畢竟是墻外的服務器,速度堪憂

自定義一個倉庫管理

  • 優(yōu)點:墻內(nèi)有碼云、CSDN等都可以提供免費倉庫
  • 缺點:需要配置一個倉庫地址

很明顯,我選擇了方式2

為自己定制一款主題

IDEA已經(jīng)內(nèi)置了多款主題:亮色和暗黑色

本文上部分介紹了主題對我開發(fā)效率的提升,希望能給你帶來啟發(fā)。

當然嘍,主題和皮膚一樣,蘿卜白菜,各有所愛,所以各位同學酌情考慮。

考慮到確實有不少同學“喜歡”筆者這個主題,所以我把它公開了,有需要的同學公號后臺回復:IDEA主題,即可獲得。

總結(jié)

IDEA作為Java程序員每天都在用的工具,我還是建議可以專門的花點時間造一造,畢竟,磨刀是不誤砍柴工的。 

這篇是比較籠統(tǒng)的介紹了IDEA的一些實踐經(jīng)驗,還有很多細一點但非常好用、強大的功能點會在這個IDEA專欄里分享給你,比如代碼分析、代碼檢查、代碼自動優(yōu)化等,最終分享給你《我是如何高效的用IDEA保證團隊代碼質(zhì)量的》,感興趣的敬請關注。

責任編輯:武曉燕 來源: BAT的烏托邦
相關推薦

2024-03-12 00:05:00

開發(fā)編程語言IDE

2021-03-08 07:46:53

Git開源控制系統(tǒng)

2023-07-06 14:37:05

2023-11-28 08:22:05

goroutine語言

2023-11-30 18:03:55

IDEA工具

2024-02-27 18:06:35

2023-10-07 16:28:01

2022-05-11 09:51:10

云計算公共云

2019-09-27 12:44:03

數(shù)據(jù)建模企業(yè)數(shù)據(jù)存儲

2021-05-31 07:57:00

拼接字符串Java

2017-07-05 18:27:27

開發(fā)編程程序員

2018-04-24 15:00:59

Kotlin語言函數(shù)

2024-02-02 18:14:17

IDEA插件開發(fā)

2012-05-18 15:37:01

JavaIntelliJ

2014-04-14 15:27:01

2011-12-06 13:30:45

2023-12-12 18:02:50

Git插件項目

2012-05-10 10:20:04

memcached緩存

2023-08-08 13:51:13

Gherkin開發(fā)

2020-07-08 14:10:30

開發(fā)技能工具
點贊
收藏

51CTO技術棧公眾號