提高golang源碼閱讀效率的六個高級技巧
引言
在一個項目開發(fā)過程中,我們會很經(jīng)常閱讀代碼,這里面包括負(fù)責(zé)不同業(yè)務(wù)的人的代碼,也會可能涉及到一些框架源碼。
也許更多時間是閱讀自己的代碼,隨著業(yè)務(wù)的發(fā)展,自己對代碼的審美的改變,我們不斷的迭代這些代碼,代碼量可以說是與日俱增,代碼的某些結(jié)構(gòu)也會發(fā)生大大小的改變,這些都要求我們在閱讀代碼的時候,需要更快的效率和技巧。
只有深入經(jīng)歷過比較大型的項目,我們才會更希望有更強(qiáng)大的方式去應(yīng)對和降低環(huán)境帶來的復(fù)雜和變化。
下面就來說說我積累到的那些神一般的閱讀源碼的技巧。
第一個:在大型項目中游刃有余的行走
使用快捷鍵:alt+Home
大型項目的一個特點(diǎn)就是一個文件夾下面有很多的文件,通常多到你厭煩了每次去到里面的文件都要靠鼠標(biāo)的齒輪不停的滑。
在當(dāng)前文件使用alt+home,就可以幫你彈出這個文件所屬的文件夾下面的所有文件,然后你就可以使用之前說到的 speed tying ,根據(jù)關(guān)鍵的幾個字母定位到想要去的文件了。

第二個:在已經(jīng)打開的多個文件之間來回穿梭
使用快捷鍵:alt+left/right left 表示左箭頭,right 表示右箭頭
這個快捷鍵可以大大減少自己寫代碼和右手切換到鼠標(biāo)上的時間,也許你開始這個用起來不是很喜歡,但是相信多用十幾次就會感覺很swift(飛一般的感覺)

第三個:遠(yuǎn)程定位到某個文件
使用快捷鍵:ctrl+shift+n
這個適合你的文件名很長的,但是你只記得2-5字母,并且你會感覺到現(xiàn)在你所在的文件位置距離你的目標(biāo)文件的位置很遠(yuǎn)。那么你可以趕快使用這個快捷鍵,然后輸入你記得的內(nèi)容。

根據(jù)經(jīng)驗,你可以在最后輸入文件的后綴,比如你有一個VeryLongFamousFilename.xml和VeryLongFamousFilename.go,此時你可以這樣輸入:vlfxml,這樣goland就會把你想要的文件排在最前面,只需要enter一下,就進(jìn)入了想要的代碼世界了。
第四個:在多個停留點(diǎn)來回切換
使用快捷鍵:ctrl+alt+ left/right
在項目中,你會在很多代碼位置停留,就如同一個人在人世間從一個地方去到另一個地方,然后再去到另一個地方。
但是雖然現(xiàn)代科技的速度很快,但是去旅游,去遠(yuǎn)行人仍然會花費(fèi)人很多的精力和時間。
在這方面,代碼這很快了,使用如上快捷鍵立馬到。
不過這2個快捷鍵,很容易和系統(tǒng)的快捷鍵沖突,人都不喜歡沖突的,所以,我尋得一個更快的快捷鍵
alt+P:表示回到上一個地方,P表示Previous
alt+F:回到下一個地方,F(xiàn)表示Forward。
第五個:快速查看文件的大局觀
使用快捷鍵:alt+7
前面講的都是如何進(jìn)入一個文件,去到文件的細(xì)節(jié)之處;這像是一個爬山的過程,如果不一覽眾山小的話,眼光的境界就得不到總結(jié)和延展。這快捷鍵給了我們一個像杜甫一樣會當(dāng)凌絕頂,一覽眾山小的機(jī)會。

里面列出了這個文件的結(jié)構(gòu)(權(quán)當(dāng)這個文件的一個傳記了吧):就像這個文件的總結(jié)單一樣,有哪些屬性,做了哪些事;就像一個偉人傳記,會描述這個人的特點(diǎn),童年經(jīng)歷等,大局觀就像書的目錄。
第六個:行為的行為,比行為更強(qiáng)大
前面的技巧,對象都很明確是一個文件。我們按照這些技巧,去執(zhí)行就可以了。然而有些問題是:我想做一個事情,我找不到對應(yīng)的地方去做,只能盲目的在一堆似是而非的選擇中去嘗試。
action是goland的一個強(qiáng)大概念,goland里面具有很多的action,從它的Setting里面就可以看出。
但是今天講的就不是讓你在Setting里面不停的點(diǎn)擊。我們可以像搜索文件一樣搜索action。
快捷鍵:不好意思,這個沒有默認(rèn)的快捷鍵!(說錯了,快捷鍵是ctrl+shift+a,但是這個容易和截圖快捷鍵沖突)
但是gland不會讓你失望的。我們可以結(jié)合前面搜索文件夾快捷鍵ctrl+shift+n,然后按2次alt+right,可以專門來搜索action;
其實(shí)你也可以直接2次shift,然后輸入action的名字就好了。(這是最快的方式了,所以建議忘記ctrl+shift+a)
這樣搜索action的優(yōu)勢很明顯,如果這個action在Setting里面的層次藏的很深,這個時候,我們一層層進(jìn)去很費(fèi)時間的。使用一步到位的體驗就很絲滑。

有波瀾的搜索action
例子:選擇顏色主題:輸入color,然后按enter,會彈出一個小框給你選擇。

以上就是提高golang源碼閱讀效率的高級技巧的詳細(xì)內(nèi)容,更多關(guān)于golang源碼閱讀技巧的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用Go和Tesseract實(shí)現(xiàn)驗證碼識別的流程步驟
驗證碼主要用于區(qū)分人類用戶和機(jī)器程序,Tesseract 是一個開源的光學(xué)字符識別(OCR)引擎,支持多種語言和字體,并具有較高的識別準(zhǔn)確率,它由 Google 維護(hù),并且可以通過多種編程語言調(diào)用,本文給大家介紹了使用Go和Tesseract實(shí)現(xiàn)驗證碼識別的流程步驟2025-01-01
Go語言使用ioutil.ReadAll函數(shù)需要注意基本說明
這篇文章主要為大家介紹了Go語言使用ioutil.ReadAll函數(shù)需要注意基本說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
golang中的string與其他格式數(shù)據(jù)的轉(zhuǎn)換方法詳解
這篇文章主要介紹了golang中的string與其他格式數(shù)據(jù)的轉(zhuǎn)換方法,文章通過代碼示例介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2023-10-10
mcp-go Go搭建MCP服務(wù)的實(shí)現(xiàn)示例
本文主要介紹了mcp-go Go搭建MCP服務(wù)的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-05-05
go語言之給定英語文章統(tǒng)計單詞數(shù)量(go語言小練習(xí))
這篇文章給大家分享go語言小練習(xí)給定英語文章統(tǒng)計單詞數(shù)量,實(shí)現(xiàn)思路大概是利用go語言的map類型,以每個單詞作為關(guān)鍵字存儲數(shù)量信息,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2020-01-01

