提高golang源碼閱讀效率的六個(gè)高級(jí)技巧
引言
在一個(gè)項(xiàng)目開發(fā)過程中,我們會(huì)很經(jīng)常閱讀代碼,這里面包括負(fù)責(zé)不同業(yè)務(wù)的人的代碼,也會(huì)可能涉及到一些框架源碼。
也許更多時(shí)間是閱讀自己的代碼,隨著業(yè)務(wù)的發(fā)展,自己對(duì)代碼的審美的改變,我們不斷的迭代這些代碼,代碼量可以說是與日俱增,代碼的某些結(jié)構(gòu)也會(huì)發(fā)生大大小的改變,這些都要求我們?cè)陂喿x代碼的時(shí)候,需要更快的效率和技巧。
只有深入經(jīng)歷過比較大型的項(xiàng)目,我們才會(huì)更希望有更強(qiáng)大的方式去應(yīng)對(duì)和降低環(huán)境帶來的復(fù)雜和變化。
下面就來說說我積累到的那些神一般的閱讀源碼的技巧。
第一個(gè):在大型項(xiàng)目中游刃有余的行走
使用快捷鍵:alt+Home
大型項(xiàng)目的一個(gè)特點(diǎn)就是一個(gè)文件夾下面有很多的文件,通常多到你厭煩了每次去到里面的文件都要靠鼠標(biāo)的齒輪不停的滑。
在當(dāng)前文件使用alt+home,就可以幫你彈出這個(gè)文件所屬的文件夾下面的所有文件,然后你就可以使用之前說到的 speed tying ,根據(jù)關(guān)鍵的幾個(gè)字母定位到想要去的文件了。
第二個(gè):在已經(jīng)打開的多個(gè)文件之間來回穿梭
使用快捷鍵:alt+left/right left 表示左箭頭,right 表示右箭頭
這個(gè)快捷鍵可以大大減少自己寫代碼和右手切換到鼠標(biāo)上的時(shí)間,也許你開始這個(gè)用起來不是很喜歡,但是相信多用十幾次就會(huì)感覺很swift(飛一般的感覺)
第三個(gè):遠(yuǎn)程定位到某個(gè)文件
使用快捷鍵:ctrl+shift+n
這個(gè)適合你的文件名很長的,但是你只記得2-5字母,并且你會(huì)感覺到現(xiàn)在你所在的文件位置距離你的目標(biāo)文件的位置很遠(yuǎn)。那么你可以趕快使用這個(gè)快捷鍵,然后輸入你記得的內(nèi)容。
根據(jù)經(jīng)驗(yàn),你可以在最后輸入文件的后綴,比如你有一個(gè)VeryLongFamousFilename.xml和VeryLongFamousFilename.go,此時(shí)你可以這樣輸入:vlfxml,這樣goland就會(huì)把你想要的文件排在最前面,只需要enter一下,就進(jìn)入了想要的代碼世界了。
第四個(gè):在多個(gè)停留點(diǎn)來回切換
使用快捷鍵:ctrl+alt+ left/right
在項(xiàng)目中,你會(huì)在很多代碼位置停留,就如同一個(gè)人在人世間從一個(gè)地方去到另一個(gè)地方,然后再去到另一個(gè)地方。
但是雖然現(xiàn)代科技的速度很快,但是去旅游,去遠(yuǎn)行人仍然會(huì)花費(fèi)人很多的精力和時(shí)間。
在這方面,代碼這很快了,使用如上快捷鍵立馬到。
不過這2個(gè)快捷鍵,很容易和系統(tǒng)的快捷鍵沖突,人都不喜歡沖突的,所以,我尋得一個(gè)更快的快捷鍵
alt+P:表示回到上一個(gè)地方,P表示Previous
alt+F:回到下一個(gè)地方,F(xiàn)表示Forward。
第五個(gè):快速查看文件的大局觀
使用快捷鍵:alt+7
前面講的都是如何進(jìn)入一個(gè)文件,去到文件的細(xì)節(jié)之處;這像是一個(gè)爬山的過程,如果不一覽眾山小的話,眼光的境界就得不到總結(jié)和延展。這快捷鍵給了我們一個(gè)像杜甫一樣會(huì)當(dāng)凌絕頂,一覽眾山小的機(jī)會(huì)。
里面列出了這個(gè)文件的結(jié)構(gòu)(權(quán)當(dāng)這個(gè)文件的一個(gè)傳記了吧):就像這個(gè)文件的總結(jié)單一樣,有哪些屬性,做了哪些事;就像一個(gè)偉人傳記,會(huì)描述這個(gè)人的特點(diǎn),童年經(jīng)歷等,大局觀就像書的目錄。
第六個(gè):行為的行為,比行為更強(qiáng)大
前面的技巧,對(duì)象都很明確是一個(gè)文件。我們按照這些技巧,去執(zhí)行就可以了。然而有些問題是:我想做一個(gè)事情,我找不到對(duì)應(yīng)的地方去做,只能盲目的在一堆似是而非的選擇中去嘗試。
action是goland的一個(gè)強(qiáng)大概念,goland里面具有很多的action,從它的Setting里面就可以看出。
但是今天講的就不是讓你在Setting里面不停的點(diǎn)擊。我們可以像搜索文件一樣搜索action。
快捷鍵:不好意思,這個(gè)沒有默認(rèn)的快捷鍵?。ㄕf錯(cuò)了,快捷鍵是ctrl+shift+a,但是這個(gè)容易和截圖快捷鍵沖突)
但是gland不會(huì)讓你失望的。我們可以結(jié)合前面搜索文件夾快捷鍵ctrl+shift+n,然后按2次alt+right,可以專門來搜索action;
其實(shí)你也可以直接2次shift,然后輸入action的名字就好了。(這是最快的方式了,所以建議忘記ctrl+shift+a)
這樣搜索action的優(yōu)勢(shì)很明顯,如果這個(gè)action在Setting里面的層次藏的很深,這個(gè)時(shí)候,我們一層層進(jìn)去很費(fèi)時(shí)間的。使用一步到位的體驗(yàn)就很絲滑。
有波瀾的搜索action
例子:選擇顏色主題:輸入color,然后按enter,會(huì)彈出一個(gè)小框給你選擇。
以上就是提高golang源碼閱讀效率的高級(jí)技巧的詳細(xì)內(nèi)容,更多關(guān)于golang源碼閱讀技巧的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Go環(huán)境變量配置,及GOROOT、GOPATH的區(qū)別小結(jié)
本文主要介紹了Go環(huán)境變量配置,及GOROOT、GOPATH的區(qū)別小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-09-09GO中的時(shí)間操作總結(jié)(time&dateparse)
日常開發(fā)過程中,對(duì)于時(shí)間的操作可謂是無處不在,但是想實(shí)現(xiàn)時(shí)間自由還是不簡(jiǎn)單的,多種時(shí)間格式容易混淆,本文為大家整理了一下GO中的時(shí)間操作,有需要的可以參考下2023-09-09分布式架構(gòu)在Go語言網(wǎng)站的應(yīng)用
分布式架構(gòu)是目前應(yīng)對(duì)高流量、高并發(fā)的重要解決方案,分布式架構(gòu)的核心思想是分而治之,將單臺(tái)服務(wù)器的資源劃分為多臺(tái)服務(wù)器進(jìn)行協(xié)同完成,分布式架構(gòu)應(yīng)用于Go語言網(wǎng)站中既能提升服務(wù)速度,又能降低了服務(wù)器宕機(jī)的風(fēng)險(xiǎn)2024-01-01Go語言Web編程實(shí)現(xiàn)Get和Post請(qǐng)求發(fā)送與解析的方法詳解
這篇文章主要介紹了Go語言Web編程實(shí)現(xiàn)Get和Post請(qǐng)求發(fā)送與解析的方法,結(jié)合實(shí)例形式分析了Go語言客戶端、服務(wù)器端結(jié)合實(shí)現(xiàn)web數(shù)據(jù)get、post發(fā)送與接收數(shù)據(jù)的相關(guān)操作技巧,需要的朋友可以參考下2017-06-06Go標(biāo)準(zhǔn)庫日志打印及同時(shí)輸出到控制臺(tái)與文件
Go語言內(nèi)置的log包實(shí)現(xiàn)了簡(jiǎn)單的日志服務(wù),下面這篇文章主要給大家介紹了關(guān)于Go標(biāo)準(zhǔn)庫日志打印及同時(shí)輸出到控制臺(tái)與文件的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11golang生成指定位數(shù)的隨機(jī)數(shù)的方法
這篇文章主要介紹了golang生成指定位數(shù)的隨機(jī)數(shù)的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10