【備忘】Idea的那些事

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

Jetbrain & Idea

Jetbrain

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

Idea

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

Idea的那些事

初次使用Idea

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

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

讓我們繼續往下看:

果然,Intellij IdeaPycharm一樣,都提供了完全免費的社區版,可以直接下載使用。

然而,對於本科生,我們依然可以通過註冊學生賬號的方式來免費使用Ultimate版(準確的說,Jetbrain大禮包裏面除了完全面向企業的團隊工具之外,所有的專業版工具都可以憑學生優惠免費下載使用

大家可以自己去按照官網的引導或者網上的教程等進行認證操作,本文中不再贅述。

代碼風格

筆者做了三次OO作業,看了三份不同的代碼。老實說這三個人的代碼思維能力都是挺不錯的,然而,代碼風格卻不是很能看,或者說,這樣的代碼即便沒有任何bug,也根本不可能用在真正的團隊工程中。

研讀過阿里巴巴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書寫文檔的同學來說,能有一款優雅可視的內置插件當然是一件很爽的事情。就像這樣

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章