av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

程序員的工作效率:EmacsvsIntelliJIDEA

我用 Emacs 寫(xiě)了 7 年的 C++ 代碼。 4 年前,當(dāng)我換了工作,開(kāi)始使用 IntelliJ IDEA 轉(zhuǎn)向 Java 開(kāi)發(fā)。毫無(wú)疑問(wèn),比起 Emacs,我在 IntelliJ IDEA 上寫(xiě)代碼更有效率。

導(dǎo)航

代碼好像真的是80%由導(dǎo)航生成,只有20%是實(shí)際寫(xiě)作的結(jié)果,IntelliJ IDEA的真正亮點(diǎn)所在是導(dǎo)航到代碼庫(kù)。例如,假設(shè)你要添加功能到現(xiàn)有的類,即使你對(duì)那個(gè)類很熟悉,你還是需要檢查新代碼該放在哪里比較合適,需要添加一個(gè)新的聲明嗎?還有什么其他的類在使用你現(xiàn)在修改的方法?這些都需要查看現(xiàn)有代碼。

甚至在你寫(xiě)代碼時(shí)也會(huì)有很多導(dǎo)航,你想要使用的那個(gè)方法的名稱是什么?參數(shù)的序列是什么-是先有一個(gè)string,然后一個(gè)

整型,或是其他方式?枚舉可能的取值是什么?

有一些些導(dǎo)航存在于一個(gè)文件中,而在一個(gè)文件中我最常用的操作有:跳轉(zhuǎn)到文件的頂部或底部,轉(zhuǎn)到一行的開(kāi)始或結(jié)束,選擇文本,剪切,復(fù)制,粘貼,向前向后搜索,注釋以及取消注釋代碼。 Emacs 和IntelliJ IDEA對(duì)這些操作都有很好的

命令和快捷鍵支持。

但是,當(dāng)涉及到文件之間的導(dǎo)航時(shí),IntelliJ IDEA就有很大的優(yōu)勢(shì)。其中一個(gè)最有用的命令是Ctrl + B(轉(zhuǎn)到聲明),正如其名所暗示的,你可以轉(zhuǎn)到變量,方法,以及類的聲明處,即使它在另一個(gè)文件中。Ctrl + Alt + 左鍵可以返回上一級(jí),我時(shí)刻都在用它,經(jīng)常會(huì)在跳幾級(jí)后回到開(kāi)始的地方。

另一個(gè)相關(guān)的導(dǎo)航命令是Ctrl + Alt + B(轉(zhuǎn)向定義)。在一個(gè)接口的方法名處使用此命令,你將會(huì)得到一個(gè)彈出的列表顯示著這個(gè)方法所有實(shí)現(xiàn)的地方,然后你可以選擇一個(gè)你需要轉(zhuǎn)向的,(如果只有一個(gè)實(shí)現(xiàn),你就可以直接轉(zhuǎn)到哪兒)。重載方法是同樣的道理。

與此相反的是Ctrl + U (轉(zhuǎn)向父類方法或父類)。如果插入符在一個(gè)接口函數(shù)的實(shí)現(xiàn)處(一個(gè)小小的界面符號(hào)在方法名的左側(cè)),這個(gè)命令將會(huì)帶你轉(zhuǎn)到接口本身。

當(dāng)我想查看一個(gè)方法或變量被使用的所有地方時(shí),我使用Ctrl + Alt + F7(顯示用法)。這個(gè)命令彈出一個(gè)包含所有使用處

的列表,你可以很容易地轉(zhuǎn)向任意一個(gè)。如果要查找類,我使用Ctrl + N ( 轉(zhuǎn)到類),它可以讓你使用大寫(xiě)字母和*通配符搜索類名。我也經(jīng)常用ctrl + E。他會(huì)彈出一個(gè)窗口包含了最近最常使用的15個(gè)文件(最常使用的在最上面)。你只需要向下選擇一個(gè)你想要的,然后按下回車(chē)轉(zhuǎn)到它。

另一個(gè)有用的命令是Ctrl + P(參數(shù)信息),在方法和構(gòu)造函數(shù)的參數(shù)處使用它來(lái)獲得一個(gè)彈出窗口顯示參數(shù)的名稱和類型。而在Emacs中,從某種意義上來(lái)說(shuō)這不是導(dǎo)航,你將不得不去方法或構(gòu)造函數(shù)的定義處去找到這些信息。

上述所有的命令是難以置信的節(jié)省時(shí)間。在Emacs中,你需要自己轉(zhuǎn)到文件以便找到你所需要的。而在IntelliJ IDEA中,它是自動(dòng)的。事實(shí)上,我注意到,在我使用C++和Emacs的日子里,比起Java我定義的類趨向于更大,方法少而且長(zhǎng)。我想一個(gè)原因是,當(dāng)一切操作都在同一個(gè)文件中時(shí)Emacs導(dǎo)航更加容易,但是對(duì)于具有巨大導(dǎo)航功能的 IntelliJ IDEA來(lái)說(shuō),如果功能分散在多個(gè)文件中也并沒(méi)有多大的關(guān)系.

其他優(yōu)勢(shì)

除了導(dǎo)航,IntelliJ IDEA在很多方面都具備優(yōu)勢(shì)。雖然這兩種環(huán)境都有語(yǔ)法高亮, IntelliJ IDEA在此之上增加了一個(gè)新的有用功能。靜態(tài)的方法和變量以斜體顯示,沒(méi)有使用的變量或方法會(huì)變灰。當(dāng)然,IntelliJ IDEA會(huì)用紅色標(biāo)注任何你輸入的語(yǔ)法錯(cuò)誤。沒(méi)有必要再去為了檢查錯(cuò)誤編譯程序-它會(huì)實(shí)時(shí)地幫你完成。

在實(shí)際編碼時(shí)IntelliJ IDEA也會(huì)有一些非常有用的功能。首先就是名稱的自動(dòng)補(bǔ)全,鍵入一個(gè)變量或方法名的幾個(gè)字母,按Ctrl+空格鍵,名稱會(huì)被補(bǔ)全?;蛘咴邳c(diǎn)后按Ctrl+空格可以查看一個(gè)對(duì)象的可用方法。

另一個(gè)功能,根據(jù)IntelliJ IDEA的使用統(tǒng)計(jì)數(shù)據(jù),是我用的最多的一個(gè)單一功能,那就是語(yǔ)法的自動(dòng)選擇。當(dāng)你反復(fù)按下 Ctrl + W,他對(duì)代碼的選擇部分會(huì)越來(lái)越大。例如,它就會(huì)選擇一個(gè)方法名,然后是一個(gè)表達(dá)式,再然后是整個(gè)語(yǔ)句,***是整個(gè)代碼塊。這在搜索,排版縮進(jìn),注釋代碼時(shí)非常有用。

當(dāng)然,還有重命名支持。在Emacs中,如果我重命名一個(gè)方法名稱,我需要做查找和替換。但是對(duì)于每一個(gè)替換,我不得不檢查以確保我不會(huì)一不小心改變不應(yīng)該改變的東西。如果方法是公有的,我又必須在其他類中找到出現(xiàn)的地方。在IntellJ IDEA中,這就變成一件非常容易的事情。僅僅需要選擇方法名,按下Ctrl+F6,輸入新的名字,然后敲回車(chē)。所有文件中方法名出現(xiàn)的所有地方都將會(huì)被替換。

對(duì)IDE毫無(wú)根據(jù)的顧慮

我經(jīng)常會(huì)看到一些評(píng)論,關(guān)于如何你如果使用了IDE,你就必須很多時(shí)候在使用使用鼠標(biāo)和菜單。這是完全錯(cuò)誤地。我在所有的程序中都喜歡用快捷鍵,盡量不用鼠標(biāo)。IntelliJ IDEA對(duì)于所有的命令都有強(qiáng)大的快捷鍵綁定,而且很容易增加新的或者修改現(xiàn)有的命令。所以你需要使用鼠標(biāo)和菜單的情況并不多。以上我提到的所有命令都是用快捷鍵訪問(wèn)的。

另一個(gè)毫無(wú)根據(jù)的顧慮是你只能做那些列在IDE菜單中的操作。這也是一個(gè)不能成立的觀點(diǎn)。就我而言,我所做的正和我在emacs中的一樣,即編寫(xiě)和編輯代碼。唯一的區(qū)別是,IntelliJ IDEA更快更準(zhǔn)確。

還有一個(gè)普遍的擔(dān)心,即你會(huì)被強(qiáng)制帶入到IDE“封閉的環(huán)境中”。好了,沒(méi)有什么可以阻止你在需要的時(shí)候使用其他具。源碼樹(shù)一直在那里存在。退出IDE,去用任何你需要的工具,然后再返回來(lái)。例如,我有時(shí)需要跨越好幾個(gè)IntelliJ IDEA工程使用grep。在這些情況下,我就會(huì)用一個(gè)合適的正則表達(dá)式來(lái)使用grep。沒(méi)有什么大不了的。

***,我還看到的一種說(shuō)法是IDE到處加了配置和元數(shù)據(jù)文件。在IntelliJ IDEA中,只有3個(gè)工程文件被加到了目錄結(jié)構(gòu)的根目錄下。就是這樣。非常的不起眼。

你不知道你錯(cuò)過(guò)了什么

非常有趣的一件事是,在我換用IntelliJ IDEA之前我非常喜歡用Emacs。我已經(jīng)學(xué)到了很多快捷操作,已經(jīng)變得非常善于編輯。我也非常善于使用grep,查找以及使用目錄結(jié)構(gòu)中的其他的Unix命令,因此并沒(méi)有覺(jué)得我還缺少什么工具。快速說(shuō)明一下:Unix命令行工具***的來(lái)源是 Unix Power Tools。

當(dāng)我開(kāi)始用Symsoft時(shí),幾乎所有的開(kāi)發(fā)人員都在使用 IntelliJ IDEA。所有就很自然地嘗試了。我很快發(fā)現(xiàn)可以用它能做什么,并且永不回頭。事實(shí)上,一旦意識(shí)到它可以做一些酷的東西,我就堅(jiān)持展示它給我的前同事看。無(wú)論何時(shí),只要我和他們共進(jìn)完午餐,我都會(huì)帶他們來(lái)到我的辦公室。給他們展示一些IntelliJ IDEA的招數(shù),眼見(jiàn)為實(shí)。

但是一個(gè)好的編輯器總會(huì)有自己的空間

對(duì)于一個(gè)好的文本編輯器來(lái)說(shuō)總會(huì)有一些有用的地方。即使我沒(méi)有用Emacs寫(xiě)java,我還是幾乎每天都在用它。這是我編輯文本文件的選擇,我也偶然用它編寫(xiě)bash和ruby腳本。

然而,就在前幾天,我的一個(gè)同事提出了關(guān)于文本編輯器的話題。他提到他開(kāi)始學(xué)習(xí)VIM,本著確保我知道我錯(cuò)過(guò)了什么的精神,我也會(huì)試試看。所以過(guò)會(huì)兒,我將會(huì)用Vim代替Emacs。讓我們看看結(jié)果會(huì)如何呢。


新聞名稱:程序員的工作效率:EmacsvsIntelliJIDEA
URL地址:http://uogjgqi.cn/article/djgddoh.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流