Goland 這些實操技巧,你可能還不會!
工欲善其事必先利其器。對於開發工程師同樣如此,一個合適的開發工具能夠有效提升我們的開發效率和定位問題的能力。
Golang IDE 被 Gopher 接受的其實不太多,Goland 和 VSCode 應該是佔比重最大的。vim-go 真心就不推薦了,入門曲線太過陡峭,太過華而不實(vim 黨不要噴我),我們就寫程序而已,何苦爲難自己呢。
我日常開發中,Goland,Vscode 一般會配合使用。對於 VsCode 來說,我唯一覺得不方便的是 VSCode 的 Debug 功能,配置起來麻煩,而且總有種很卡的感覺。
本篇文章我會介紹一點 Goland 開發中比較常見的一些技巧,幫助你快速入門 Goland。
Goland Debug 調試
這裏首先吐槽下 delve,對於用慣 gdb 的人來說,delve 簡直弱爆了。
舉個例子,gdb 有個非常強大的 x[1] 功能,能夠去觀察變量內存分佈情況。delve 在 1.7.0 版本才提供這個功能,簡單試用了一下,沒有達到想象中的效果,不過也是可以使用的。這裏就不在詳細介紹,有興趣的可以 delve help x 去查看。
更多時候我喜歡使用 goland 調試代碼,基本滿足日常的開發需求。這裏分享幾種進入 debug 模式的方式。
對於後端開發來說,一個趁手的接口調試工具是不可缺少的。在介紹如何 debug 接口之前,先推薦幾款比較不錯的接口調試工具。
-
REST Postman[2]
-
GRPC Bloomrpc[3]
-
GraphQL Insomnia[4]
如
何調試接口這裏就不再文字介紹了,具體步驟提供了動圖。
主要步驟:
-
打斷點
-
點擊 debug 按鈕啓動程序
-
Postman 調用接口
-
單步調試
有些情況下,我們封裝完底層基礎函數後,接口調用該函數一直報錯。如果從外面一層一層的 debug 進來,會特別麻煩,使用單測函數作爲 debug 的入口也是特別方便的事情。
設置參數
一般情況下,不管我們使用 Goland 啓動程序還是 Debug,都會遇到讓輸入參數的情況的。這個是個蠻重要的功能,但是很多同學不會設置。
主要步驟:
-
點擊右上角:Edit Configuration ...
-
在彈出的框裏選擇正確的 Working Directory
-
在 Program arguments 裏填寫對應的參數即可
go 工具鏈引入
使用 Vscode 的同學會注意到,當我們打開 Go 源碼文件時,會提示我們安裝一套完整的工具鏈,在這一點上 Vscode 比 Goland 優秀太多了。Goland 不但沒有一鍵導入的功能,而且每個工程都需要引入一遍,着實太坑。
Goland 可以引入 gofmt, goimport,當然還可以自定義其他相關的工具。不過根據我的使用來看,開着 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
-
右鍵點擊項目根目錄 ->Mark Directory as -> Resource root
-
重啓 Goland
如果上面這些步驟執行完畢後,你的程序能夠正常構建,但是 Goland 仍然提示 "Unresolved reference", 那麼恭喜你中獎了。
Goland 有很低概率會遇到 Index 完全失效,而且無法恢復,目測這是 Goland 的 Bug,遇到的概率不太高。
解決方案:
其實沒有啥解決方案。我通常會這麼做:徹底刪除 Goland,再重新安裝。
本篇文章中關於 Goland 的使用技巧,你是否感興趣呢?歡迎留言評論,如果反響不錯我會繼續發出後續篇章(包括 vscode)。
歡迎關注公衆號。更多學習學習資料分享,關注公衆號回覆指令:
-
回覆 0,獲取 《Go 面經》
-
回覆 1,獲取 《Go 源碼流程圖》
[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/
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/mrCQyw_dR5VYzf8ejyvHfA