說到Java的IDE,彷佛eclipse和Idea是目前的主流。然而,OO的課程組卻一直在推薦使用eclipse,因而不少人就這樣錯過了Idea這樣強大的IDE工具。本文將會對於Idea和Idea的一些常見(實際上,不少是Jetbrain系列IDE的表明性操做)操做進行一些介紹。php
Jetbrain是捷克的一家企業(Jetbrain官網),目前其主打產品是各個現代主流語言的IDE,包含Python
、Ruby
、PHP
、SQL
等語言(對於企業用戶還提供一些teamwork管理工具)。其IDE用過的人都知道,頗具現代感,不少功能解決了令很多程序猿們頭疼多年的難題(後面將會詳細講到)。html
Idea則是Jetbrain全家桶的一員(Idea官網),其除了Jetbrain一些共性的王牌功能以外,還針對Java這門語言的一些特性進行了進一步的用戶體驗優化。(後文也將詳細闡述)java
初次打開Idea的下載頁面,一會兒就懵了:
git
499刀一年。。。看的有些腎疼。那是否是咱們Idea之旅就要就此止步了呢?Of course, NO!安全
讓咱們繼續往下看:
markdown
果真,Intellij Idea
和Pycharm
同樣,都提供了徹底免費的社區版,能夠直接下載使用。網絡
然而,對於本科生,咱們依然能夠經過註冊學生帳號的方式來無償使用Ultimate版(準確的說,Jetbrain大禮包裏面除了徹底面向企業的團隊工具以外,全部的專業版工具均可以憑學生優惠免費下載使用)框架
你們能夠本身去按照官網的引導或者網上的教程等進行認證操做,本文中再也不贅述。eclipse
筆者作了三次OO做業,看了三份不一樣的代碼。老實說這三我的的代碼思惟能力都是挺不錯的,然而,代碼風格卻不是很能看,或者說,這樣的代碼即使沒有任何bug,也根本不可能用在真正的團隊工程中。ide
研讀過阿里巴巴java開發代碼規範手冊的同窗們應該知道,在真正的工程代碼中,處於代碼可維護性和提升團隊合做效率的考量,會有不少代碼規範性的要求。
然而,可能很多同窗已經寫了規模不小的代碼,並且從未參照過代碼規範。沒必要擔憂,jetbrain給咱們提供了很方便的代碼風格工具:
能夠看到,使用tab
仍是空格縮進,以及縮進幾格都是能夠自由調整的(實際上,通常企業的代碼工程規範是使用4個空格做爲縮進)。此外,在別的標籤頁下,還有不少能夠調整的代碼風格相關的東西(包括大家聖戰了無數年的大括號換行不換行問題)。
而這樣的代碼習慣調整,只須要Menu -> File -> Settings -> Editor -> Code Style -> Java便可找到並調整(能夠看到,除了java還有很是多種的語言。沒錯,通常的jetbrain IDE都支持多種語言的編輯,若是你有同時使用多種語言的需求的話,能夠在其餘語言對應的區域進行編輯。)
在咱們調整好了以後,咱們在代碼位置按下Ctrl
+Alt
+L
(Pycharm中是Alt
+F8
)便可完成代碼規範化(或者Menu -> Code -> Reformat Code),效果以下:
只須要按下Ctrl
+Alt
+L
,代碼馬上就變成了這樣:
代碼瞬間變得乾淨整潔,清清爽爽。
說到代碼聯想,你們可能對這一律念並不陌生。事實上不少的IDE也都已經在支持這一功能了。
可是,等你一用idea的代碼聯想功能,你就會再也放不下來了。
說到代碼聯想,你們確定會很快的想到eclipse的聯想功能:
然而,eclipse的代碼聯想實際上存在一些侷限性(以及其餘不少的IDE也是這樣):
.
以後輸入e
,聯想到了exit
,但總仍是須要一些比較不優雅的操做(好比鼠標操做,好比並不符合人類直覺的一些其餘操做)來快速輸入這意味着什麼呢?這意味着,當你對一門語言或者某些類不夠熟悉(甚至根本不知道它們的存在)時,你連自我嘗試和探索的可能性都沒有,只能去翻閱冗長且並不友好的java文檔,這顯然不符合程序猿的探索精神。以及,如此不優雅的快速輸入,多年的碼農表示怎麼用怎麼以爲彆扭。
然而在idea中,這些問題都獲得了極大地改善:
LC
後,連咱們的LiftController類都聯想到了。是的,idea的代碼聯想徹底支持英文音序聯想。LC
來輸入LiftController類的話,你會發現LiftController類會在列表中愈來愈靠前,最多兩三次事後就跑到了頂部。有了idea強大的代碼聯想功能(準確的說,jetbrain全家桶IDE都有這些特性),咱們的代碼產出速度能夠大幅度提高。
不知道你們有沒有遇到過這樣的尷尬情況:
public class Scheduelr { // something inside } public abstract class Main { public static void main(String[] args) { Scheduelr s = new Scheduelr(); // execution of the constructor method Scheduelr.someStaticMethod(); // execution of the static method /* LOTS OF CODE HERE THAT USES THE SCHEUDUELR */ } }
沒錯,細心的你應該已經發現了問題所在——Scheduelr
類名的拼寫是錯誤的,應該是Scheduler
。
按照通常的代碼規範,這樣的拼寫錯誤絕對是不能夠容忍的(就算能夠容忍,這樣的東西也會致使筆者強迫症大犯 -_-||)。
然而,再一看,可能已經有無數的地方已經在用着這個拼寫錯誤的類名調用。想改?煩得很,並且還很容易錯改和漏改。不改?強迫症使我面目全非o(╥﹏╥)o。因而,相信不少人最終的選擇仍是——不改,寧肯被本身代碼噁心一遍遍也不能有bug。
實際上,idea在這件事情上有很完美的解決方案:
只須要在類名(實際上方法名,變量名等各類名字也均可以這麼作)上右鍵->Refactor->Rename,或者直接Shift
+F6
,便可直接修更名字,並且整個工程中相關的地方也都會一塊兒隨之改動。
更有趣的是,筆者作了一個實驗:
在這樣的一個函數中,將第一個for循環內的x
值進行rename操做,效果以下:
能夠看出來,idea的rename功能徹底不會誤傷到不一樣做用域類的同名實體,能夠說是作到了精確打擊。
此外,Refactor中還提供了Safe delete等人性化的功能,等待你們去嘗試(Safe delete是在刪除類、方法、變量時,檢測是否依然在其餘的地方對該實體存在依賴,以達到安全刪除的目的)。
在正規的工程代碼規範中,還有一項很重要的要求——寫文檔。
然而,這個文檔也是有很嚴格的規範的,不是不少人認爲的那樣,隨便註釋一點就能夠當作文檔。而這種符合java工程規範的文檔形式就稱之爲javadoc(相似的代碼註釋規範還有phpdoc等,更多的規則等細節能夠自行查閱代碼規範手冊或者百度,本文中不做過多講述)
好比,咱們再次來到以前寫的test
方法上,打入/
、*
、*
,再按下回車:
而後咱們按照規定的格式來補齊這個javadoc框架:
一個格式規範且很清晰的方法文檔就這樣生成了。
除此以外,javadoc規範另一個很重要的用途就是能夠一鍵生成html頁面版項目文檔。點擊Menu -> Tools -> Generate Javadoc,便可自動生成完整的javadoc網頁版文檔(具體操做可參考此教程)
除此以外,Idea實際上也像eclipse同樣對於git有完美的圖形化支持。然而筆者一直使用git命令行進行全部git相關操做,對這一塊暫不是很熟悉。因此還請各位蒐集資料並自行探索。
實際上,在這個網絡化體系化做戰的時代,jetbrain也有不少的在線插件支持。
咱們只須要進入Menu -> File -> Settings -> Plugins,再點擊Install Jetbrains plugin...
,便可搜索插件並直接進行在線安裝。(實際上,因爲大陸內一些神奇的不可言表的緣由,常常會出現鏈接失敗或者下載速度極慢的狀況。這時候請自行設置代理,本文再也不贅述)
接下來筆者來安利幾款比較好的插件:
對於此次的博客做業,咱們須要用到的代碼分析插件。
這個插件沒啥別的功能,就是統計代碼行數。那意義何在呢?嘿嘿,試想寫着代碼,看着代碼行數不斷飈增,是否是一件很帶感的事情呢(^▽^)。
這是個管理.gitignore的插件,能夠用顏色標記出當前項目下全部文件的git狀態(包括Ignored,Untracked,Unmodified,Modified)
對於使用Markdown書寫文檔的同窗來講,能有一款優雅可視的內置插件固然是一件很爽的事情。就像這樣