【備忘】Idea的那些事

說到Java的IDE,彷佛eclipse和Idea是目前的主流。然而,OO的課程組卻一直在推薦使用eclipse,因而不少人就這樣錯過了Idea這樣強大的IDE工具。本文將會對於Idea和Idea的一些常見(實際上,不少是Jetbrain系列IDE的表明性操做)操做進行一些介紹。php

Jetbrain & Idea

Jetbrain

Jetbrain是捷克的一家企業(Jetbrain官網),目前其主打產品是各個現代主流語言的IDE,包含PythonRubyPHPSQL等語言(對於企業用戶還提供一些teamwork管理工具)。其IDE用過的人都知道,頗具現代感,不少功能解決了令很多程序猿們頭疼多年的難題(後面將會詳細講到)。html

Idea

Idea則是Jetbrain全家桶的一員(Idea官網),其除了Jetbrain一些共性的王牌功能以外,還針對Java這門語言的一些特性進行了進一步的用戶體驗優化。(後文也將詳細闡述java

Idea的那些事

初次使用Idea

初次打開Idea的下載頁面,一會兒就懵了:
git

499刀一年。。。看的有些腎疼。那是否是咱們Idea之旅就要就此止步了呢?Of course, NO!安全

讓咱們繼續往下看:
markdown

果真,Intellij IdeaPycharm同樣,都提供了徹底免費的社區版,能夠直接下載使用。網絡

然而,對於本科生,咱們依然能夠經過註冊學生帳號的方式來無償使用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也是這樣):

  • 寫類名的時候沒有聯想 例如,開始寫System這個類時,整個過程不會出現任何的聯想
  • 聯想出來的方法快捷鍵操做不便 例如,當System按下.以後輸入e,聯想到了exit,但總仍是須要一些比較不優雅的操做(好比鼠標操做,好比並不符合人類直覺的一些其餘操做)來快速輸入

這意味着什麼呢?這意味着,當你對一門語言或者某些類不夠熟悉(甚至根本不知道它們的存在)時,你連自我嘗試和探索的可能性都沒有,只能去翻閱冗長且並不友好的java文檔,這顯然不符合程序猿的探索精神。以及,如此不優雅的快速輸入,多年的碼農表示怎麼用怎麼以爲彆扭

然而在idea中,這些問題都獲得了極大地改善:

  • 從輸入類名的第一個字起,就能夠進行智能的聯想 仔細觀察上圖的話還能夠發現一件有趣的事情,輸入LC後,連咱們的LiftController類都聯想到了。是的,idea的代碼聯想徹底支持英文音序聯想。
  • 根據用戶近期使用的狀況來智能調節聯想順序 這是idea代碼聯想另外一個很神奇很貼心的feature,若是你近期頻繁使用LC來輸入LiftController類的話,你會發現LiftController類會在列表中愈來愈靠前,最多兩三次事後就跑到了頂部。
  • 能夠直接按上下鍵和回車來進行快速鍵入 這一點相比eclipse等其餘ide有了很是大的改善,整個過程很是符合通常人的操做直覺,且全過程不依賴任何鍵盤之外的操做。

有了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是在刪除類、方法、變量時,檢測是否依然在其餘的地方對該實體存在依賴,以達到安全刪除的目的)。

javadoc

在正規的工程代碼規範中,還有一項很重要的要求——寫文檔。

然而,這個文檔也是有很嚴格的規範的,不是不少人認爲的那樣,隨便註釋一點就能夠當作文檔。而這種符合java工程規範的文檔形式就稱之爲javadoc(相似的代碼註釋規範還有phpdoc等,更多的規則等細節能夠自行查閱代碼規範手冊或者百度,本文中不做過多講述)

好比,咱們再次來到以前寫的test方法上,打入/**,再按下回車:

而後咱們按照規定的格式來補齊這個javadoc框架:

一個格式規範且很清晰的方法文檔就這樣生成了。

除此以外,javadoc規範另一個很重要的用途就是能夠一鍵生成html頁面版項目文檔。點擊Menu -> Tools -> Generate Javadoc,便可自動生成完整的javadoc網頁版文檔(具體操做可參考此教程

Git

除此以外,Idea實際上也像eclipse同樣對於git有完美的圖形化支持。然而筆者一直使用git命令行進行全部git相關操做,對這一塊暫不是很熟悉。因此還請各位蒐集資料並自行探索。

插件

實際上,在這個網絡化體系化做戰的時代,jetbrain也有不少的在線插件支持

咱們只須要進入Menu -> File -> Settings -> Plugins,再點擊Install Jetbrains plugin...,便可搜索插件並直接進行在線安裝。(實際上,因爲大陸內一些神奇的不可言表的緣由,常常會出現鏈接失敗或者下載速度極慢的狀況。這時候請自行設置代理,本文再也不贅述)

接下來筆者來安利幾款比較好的插件:

MetricsReloaded

對於此次的博客做業,咱們須要用到的代碼分析插件。

Statistic

這個插件沒啥別的功能,就是統計代碼行數。那意義何在呢?嘿嘿,試想寫着代碼,看着代碼行數不斷飈增,是否是一件很帶感的事情呢(^▽^)。

.ignore

這是個管理.gitignore的插件,能夠用顏色標記出當前項目下全部文件的git狀態(包括IgnoredUntrackedUnmodifiedModified

Markdown support

對於使用Markdown書寫文檔的同窗來講,能有一款優雅可視的內置插件固然是一件很爽的事情。就像這樣

相關文章
相關標籤/搜索