Jetbrains 家族利器之 Gogland 簡明教程
喜歡用 IDE
做開發的同學必定不能錯過 Jetbrains
家族的 IDE,款款精品,可謂都是 IDE 中的神兵利器。
這裡介紹該家族 又一款新的 IDE —— 用於開發 Go
語言 的 Gogland
,喜歡折騰 Go
語言 IDE 的同學一定要試試看。
一、下載 Gogland
該步驟非常簡單,訪問 Gogland 的下載頁面,下載相應平臺的安裝包即可,三大平臺(Mac、Linux、Windows)都有支援。
注:當前 Gogland 還是預釋出版,想了解更多 Gogland 資訊,請參考附錄二
二、安裝 Go 環境
接下來需要安裝相應的 Go 環境,才能在 Gogland 中開發 Go 程式。
安裝方法多樣,首先可參考官網安裝指南,但如果你有 Go 多版本的需求(比如新老版本共存),你想簡化 Go 配置過程(省去 GOPATH、GOROOT 等的配置),你還希望它支援跨平臺(支援 Mac 和 Linux),那麼我特別推薦這款 Go 環境安裝工具:GVM —— 詳情可參考我的寫的這篇文章《Go 語言多版本安裝及管理利器 - GVM》。
二、設定工作空間
用過 Eclipse 的同學必不陌生 Workspace
(工作空間),Go 也有自己的工作空間,建議將 Go 的程式碼放在一個單獨的空間,類似佈局如下:
- workspace
- bin
- pkg
- src
- github.com
- user_name
- project1
- project2
然後將該工作空間(workspace 所在目錄)設定到 GOPATH 當中。GOPATH 可用於 Go 匯入、安裝、構建和更新,還會被 Gogland
自動識別(見第四節)。
注:如果你採用上述說的 GVM
的安裝方式,將自動建立一個 Workspace,並配置好 GOPATH 等相關環境變數,這也是 GVM
方便的地方。
三、設定 Gogland 的 GOROOT
在 Gogland 中,需要配置當前專案的 GOROOT
,用來編譯執行 Go 程式碼。配置起來也非常方便,開啟 Settings → Go → GOROOT
設定即可:
如果你本地安裝了多個版本的 Go,也可以在右側下拉選擇相應的版本,這依賴於你本地有多個版本的 Go 環境了。
四、設定 Gogland 的 GOPATH
Gogland 中的 GOPATH 設定功能非常實用和強大,你既可以配置多個全域性的 GOPATH (IDE 會自動識別環境變數中的 GOPATH,可不勾選),也可以配置多個專案級別的 GOPATH,甚至還可以配置多個模組級別的 GOPATH。開啟 Settings → Go → GOPATH
設定如下:
五、建立新的 Go 專案
這個很簡單,在主選單選擇 File → New → Project
, 繼而彈出 New Project
設定嚮導:
此處就需要選擇你在上面配置好的 GOROOT
,新建的專案會自動關聯全域性 GOPATH
,你還可以參照第四節說是設定你專案的 GOPATH
。
五、匯入已有 Go 專案
如果你本地已有 Go 專案程式碼,只需在主選單選擇 File → Open
,開啟你的專案目錄即可。
最新版的 Gogland
有一個非常體貼的小功能,會自動匹配你當前設定好的全域性 GOROOT。當然,你也可以在設定中更換。
接下來會開始建立索引(index),第一次建立的時候可能會比較慢,CPU 消耗比較大,耗時長短依賴於你工作空間的程式碼量,但後續用起來就非常快捷了,索引的建立也是增量的。
注: 但也有一個問題,每次升級 gogland 或者安裝更新外掛,也會重新建立索引,這個確實不友好,希望 Jetbrains 後續能改善這點。
七、執行/除錯/測試程式
當你有了一個 Go 專案工程,二話不說,先跑跑看(前提是你要有一個可執行入口,在 main package 下的 main 函式)。
為了在 Gogland 執行一個 Go 程式,你需要用到 Run Configuration。使用方法如下:
- 在主選單欄或工具欄開啟:
Run → Edit Configurations
- 點選
Edit Configurations
,開啟Run/Debug Configuration
對話方塊 - 點選
+
號按鈕,選擇你需要的執行配置,Go 用到的配置型別如下(按使用頻率解釋): -
Go Application:相當於執行
go build
和執行可執行檔案命令,該配置會生成可執行檔案,也可執行 debug -
Go Single File:相當於
go run
命令,該配置不會生成可執行檔案,不能執行 debug -
Go Test:用於執行測試程式碼,相當於
go test
,有三種測試框架可供選擇:gotest,gocheck 和 gobench - Go Remote:提供了 Go 的遠端除錯支援,你只需要設定要遠端連線的 Host 和 Port,並且保證你要除錯的程式是通過 Delve 啟動的
- Go App Engine:允許你將程式部署到 Google AppEngine,前提是你有使用 Google 雲,並且你的程式模組載入了 Go AppEngine SDK
以上就是 Go 工程在執行/除錯/測試
過程中會用到的配置型別,特別是前三項,最為常用。
如果你要執行程式,推薦使用 1 和 2。而 Gogland 智慧的地方在於,你可以通過滑鼠右擊這樣快捷的方式來執行和配置,如下,在有 main 函式的地方右擊即可:
如果你要除錯程式,本地除錯可用 1,遠端除錯請使用 4。
如果你要測試程式,請使用第 3 種方式。
同時,在測試程式的基礎上,你還可以執行除錯和程式碼覆蓋率統計,功能十分強大!
總的來說,Gogland 繼承了 Jetbrains 家族的基因,完全可以作為 Go 語言程式設計的神兵利器,還不趕緊來試試看。
注:提供兩個附錄,讓大家更全面的瞭解 Gogland。
附錄一:常用輔助快捷方式:以 Mac 為例
- 檢視提示幫助:預設快捷鍵是
⌥⏎
。最常用的快捷鍵之一,從 Eclipse 轉過來的同學對該快捷鍵肯定不陌生,很多地方都可以用上該快捷鍵,特別是有錯誤的時候,有時還會有意想不到的好效果哦。 - 檢視宣告:按住
Cmd
健(Windows 下是Ctrl
鍵),滑鼠左鍵點選相關標識。最常用的快捷鍵之一,跳轉宣告、檢視原始碼必不可少。 - 檢視函式引數:
⌘P
。直接在當前函式下檢視,當然你也可以用上面的檢視宣告
方式跳轉過去檢視。 - 程式碼重構:在你需要重構的地方,右擊選擇 Refactor 即可。
- 檢視使用率:在你需要檢視使用率的地方,右擊選擇 Find Usages 即可。
- 還有一個非常讚的功能,就是設定 live template,使用方式就是:縮寫 + Tab 鍵。配置方式在 Settings → Editor → Live Templates 中,Go 也內建了不少快捷模板哦。
以上快捷鍵你都可以在 Settings → Editor
中查詢或重置,更多 Intellij IDE
的使用小技巧可以檢視:Discover IntelliJ IDEA。
附錄二:常見問題
1、Gogland 代表什麼?
Gogland 是一個代號,並不是最終的產品名稱。靈感來自於芬蘭灣的一座小島,離芬蘭灣另一座小島 Kotlin(也是 Jetbrains 推出的一門語言) 不遠。
2、Gogland 是否會開源?
當前沒計劃開源。
3、Gogland 是否免費?
當前預覽版免費,正式版還是要收費的。
4、Gogland 中的 Go 外掛是否能用於其他基於 IntelliJ 的 IDE?
可以的,這個 Go 官方外掛 和 Gogland 所帶的 Go 相關功能是一致的,可用於 IntellIJ IDEA 極限版和其它付費 IDE,不過還不能用於社群版。
5、Gogland 繫結了哪些其他 IntelliJ 外掛?
Git, Terminal, Textmate, JavaScript, CSS, HTML, Database Tools 和 Coverage 等。
6、Gogland 什麼時候正式釋出?
還沒有確切時間,預計每個月會釋出一個 EAP build 版本。歡迎多多給我們反饋。
7、我在哪裡可以提交 issues 和功能需求?
請使用 Gogland 的 issue 跟蹤:https://youtrack.jetbrains.com/issues/GO
- 加微信實戰群請加微信(註明:實戰群):gocnio
相關文章
- Redux 莞式教程 之 簡明篇Redux
- JetBrains IDE (Gogland)for Go 下載地址 Windows,Mac,linux 都有AIIDEGoWindowsMacLinux
- 簡明 docker 教程Docker
- 簡明 Python 教程Python
- GitBook簡明安裝教程Git
- 簡明 MongoDB 入門教程MongoDB
- 簡明Python 教程 --模組Python
- 最簡明的Shiro教程
- 《簡明 PHP 教程》00 開篇PHP
- 《簡明 PHP 教程》04 基礎PHP
- 《簡明 PHP 教程》02 安裝PHP
- Raspberry Pi 3簡明配置教程
- iOS Core Animation 簡明系列教程iOS
- JetBrains漢化教程AI
- JetBrains 裡不為人知的祕密--特別篇(3)[JetBrains 家族網址]AI
- 《簡明 PHP 教程》01 關於 PHPPHP
- 哪有簡明python教程下載?Python
- JavaScript四大家族之offset家族JavaScript
- 《簡明 PHP 教程》03 第一步PHP
- hadoop家族之mahout安裝Hadoop
- 簡明Python3教程 1.介紹Python
- NumPy之:NumPy簡介教程
- Pandas之:Pandas簡潔教程
- gogland 設定Run ConfigurationsGo
- 最簡明扼要的 Systemd 教程,只需十分鐘
- Linux下DNS服務(Bind9)之Web管理利器-NamedManager部署說明LinuxDNSWeb
- Python之 Virtualenv簡明教程Python
- A byte of Python的中文譯本《簡明Python教程》Python
- Swoft 之 PHPstrom 利器PHP
- shell簡介之bash程式設計之引數說明(轉)程式設計
- 【譯】Java NIO 簡明教程系列之 NIO 簡介Java
- 一條資料HBase之旅,簡明HBase入門教程開篇
- Flutter外掛之webview_flutter簡要使用說明FlutterWebView
- markdown 繪圖利器之granphviz繪圖
- 資料分析利器之Pandas
- PHP 除錯利器之 PHPDBGPHP除錯
- 【譯】Java NIO 簡明教程系列之 ChannelJava
- Supervisor (程式管理利器) 使用說明 - 運維筆記運維筆記