Goland 这些实操技巧,你可能还不会!
工欲善其事必先利其器。對于開發(fā)工程師同樣如此,一個合適的開發(fā)工具能夠有效提升我們的開發(fā)效率和定位問題的能力。
Golang IDE 被 Gopher 接受的其實不太多,Goland 和 VSCode 應(yīng)該是占比重最大的。vim-go 真心就不推薦了,入門曲線太過陡峭,太過華而不實(vim 黨不要噴我),我們就寫程序而已,何苦為難自己呢。
我日常開發(fā)中,Goland,Vscode 一般會配合使用。對于 VsCode 來說,我唯一覺得不方便的是 VSCode 的 Debug 功能,配置起來麻煩,而且總有種很卡的感覺。
本篇文章我會介紹一點(diǎn) Goland 開發(fā)中比較常見的一些技巧,幫助你快速入門 Goland。
Goland Debug 調(diào)試
這里首先吐槽下 delve,對于用慣 gdb 的人來說,delve 簡直弱爆了。
舉個例子,gdb 有個非常強(qiáng)大的 ?x[1]?功能,能夠去觀察變量內(nèi)存分布情況。delve 在 1.7.0 版本才提供這個功能,簡單試用了一下,沒有達(dá)到想象中的效果,不過也是可以使用的。這里就不在詳細(xì)介紹,有興趣的可以 delve help x 去查看。
更多時候我喜歡使用 goland 調(diào)試代碼,基本滿足日常的開發(fā)需求。這里分享幾種進(jìn)入 debug 模式的方式。
對于后端開發(fā)來說,一個趁手的接口調(diào)試工具是不可缺少的。在介紹如何 debug 接口之前,先推薦幾款比較不錯的接口調(diào)試工具。
REST?Postman[2]
GRPC?Bloomrpc[3]
GraphQL?Insomnia[4]
主要步驟:
打斷點(diǎn)
點(diǎn)擊 debug 按鈕啟動程序
Postman 調(diào)用接口
單步調(diào)試
有些情況下,我們封裝完底層基礎(chǔ)函數(shù)后,接口調(diào)用該函數(shù)一直報錯。如果從外面一層一層的 debug 進(jìn)來,會特別麻煩,使用單測函數(shù)作為 debug 的入口也是特別方便的事情。
設(shè)置參數(shù)
一般情況下,不管我們使用 Goland 啟動程序還是 Debug,都會遇到讓輸入?yún)?shù)的情況的。這個是個蠻重要的功能,但是很多同學(xué)不會設(shè)置。
主要步驟:
點(diǎn)擊右上角:Edit Configuration ...
在彈出的框里選擇正確的 Working Directory
在 Program arguments 里填寫對應(yīng)的參數(shù)即可
go 工具鏈引入
使用 Vscode 的同學(xué)會注意到,當(dāng)我們打開 Go 源碼文件時,會提示我們安裝一套完整的工具鏈,在這一點(diǎn)上 Vscode 比 Goland 優(yōu)秀太多了。Goland 不但沒有一鍵導(dǎo)入的功能,而且每個工程都需要引入一遍,著實太坑。
Goland 可以引入 gofmt, goimport,當(dāng)然還可以自定義其他相關(guān)的工具。不過根據(jù)我的使用來看,開著 gofmt 就可以了。
推薦一些好用的插件
ideaVim
Material Theme UI
Monokai Pro theme
Goland 莫名其妙的 Index 失效
Goland 在使用的過程中,可能會遇到莫名其妙的 Index 失效的情況。你可以通過下面的步驟來重新生成 Index。
go mod tidy
go build .
Goland -> Preferences -> Go -> Go Modules -> Enable Go Modules integration -> 配置 goproxy
右鍵點(diǎn)擊項目根目錄->Mark Directory as -> Resource root
重啟 Goland
如果上面這些步驟執(zhí)行完畢后,你的程序能夠正常構(gòu)建,但是 Goland 仍然提示 "Unresolved reference ", 那么恭喜你中獎了。
Goland 有很低概率會遇到 Index 完全失效,而且無法恢復(fù),目測這是 Goland 的 Bug,遇到的概率不太高。
解決方案:
其實沒有啥解決方案。我通常會這么做:徹底刪除 Goland,再重新安裝。
本篇文章中關(guān)于 Goland 的使用技巧,你是否感興趣呢?歡迎留言評論,如果反響不錯我會繼續(xù)發(fā)出后續(xù)篇章(包括vscode)。
[1]? ??x:?https://visualgdb.com/gdbreference/commands/x
[2]Postman:?https://www.postman.com/
[3]Bloomrpc:?https://github.com/uw-labs/bloomrpc
[4]Insomnia:?https://support.insomnia.rest/
總結(jié)
以上是生活随笔為你收集整理的Goland 这些实操技巧,你可能还不会!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 搞定系统设计 03:系统设计面试的答题框
- 下一篇: 云原生环境下对“多活”架构的思考