Go 筆記之 Go 的那些 IDE

通過前面的一系列工做後,GO的語言環境已經搭建完成。咱們也初步體驗了GO提供的大部分命令。但在正式進入開發以前,還有件工做要作,那就是選擇一款適合本身的IDE。前端

爲何使用IDE

"程序員爲何要使用IDE",在一些社區論壇,常常能夠看到這樣的提問。關因而否應該使用IDE,每一個人都有着本身的見解。git

早期,程序的開發並不須要IDE,那是以機器碼編程爲主的時代。後來隨着計算機行業發展,爲了進一步提高工程開發效率,IDE就產生了。程序員

要明白的是,IDE主要是經過把各種命令工具集整合起來,開發的一套易於程序開發的軟件,一般它幫咱們造成一套高效的編程開發習慣。最終目標是爲了提高項目的開發效率。github

瞭解了IDE的本質,若是喜歡折騰,咱們徹底能夠把諸如vim或emacs等文本編輯器打造一款屬於本身的IDE。golang

支持哪些功能

不管用的是市面上已有的IDE,仍是vim純手動打造的IDE,都離不開一個話題:IDE涉及的功能有哪些?文本編輯的能力就沒必要介紹了,它是最基本的功能。數據庫

快捷鍵

雙手不離鍵盤是高效開發中很是重要的一點,要作到它,咱們就須要依賴功能強大的快捷鍵。IDE一般都有一套獨有的快捷鍵規範。當習慣了一款IDE,快捷鍵或許是你們輕易不肯更換IDE的重要緣由之一。編程

代碼高亮

代碼高亮主要涉及變量、函數定義、類、常量、特殊符號、關鍵詞等。代碼高亮能夠提升代碼閱讀體驗,對不一樣語法採用不一樣的配色方案,也可下降代碼錯誤的發生概率。並且,IDE通常都支持自定義配色,能夠由我的愛好自由設置。vim

代碼格式化

爲了方便團隊開發,在項目開發前,一般都會制定統一的代碼規範。制定好的規範須要聽從,而IDE通常都支持代碼的格式化功能,幫咱們更方便地實現目標。須要說明的是,不一樣於GO,不少編程語言並無相似gofmt的命令,代碼規範也是多樣。瀏覽器

代碼提示

IDE的代碼提示能根據輸入快速給出一系列的建議列表,好比參數信息、成員列表、代碼片斷等。爲了給出更精準的提示,一些IDE可能甚至會分析用戶歷史的操做記錄。感受這儼然已是一個小型的推薦系統了。網絡

導航跳轉

大型項目的代碼量一般較大,涉及文件也較多。在開發時,咱們常常須要在變量、函數、類等代碼間跳轉。最不便利的方式,咱們能夠經過鍵盤方向鍵或鼠標實現切換。IDE一般都實現了在變量、類型定義、函數定義、文件之間快速跳轉的方法。

代碼調試

多數狀況下,經過打印函數就能夠實現代碼調試。但經過系統化工具提供的調試功能,咱們就能應付各類複雜的場景。調試工具一般支持各類斷點調試能力、變量觀察等功能。

構建編譯

Linux下最經常使用的構建工具應該是Makefile,以前開發C/C++用的即是make。但有些語言項目用它構建會很複雜,好比Java。IDE的構建編譯功能能夠快捷地生成目標文件。編譯功能一般使用的是語言自帶編譯器,好比GO用 go build 命令。

其餘功能

固然,除上面介紹的這些,IDE可能還有不少其餘能力,好比代碼重構、文件歷史記錄、語言環境管理、數據庫管理等。只要是能想到的功能,基本均可集成進來,如今的IDE儼然已經徹底超出了傳統IDE的範疇。

GO有哪些IDE

2019年,GO的發展已有十年之久。在這期間出現了不少能被GO語言使用的IDE,把它們都詳細介紹一遍是不現實的。接下來,重點介紹我比較瞭解幾款IDE。

Goland

Goland,商業公司jetbrains 近兩年推出的 Go 集成開發環境,它真的是無比強大。

我相信不少程序都用過他們家的IDE,好比Java的 Intellj IDEA、PHP的PHPStorm、Python的PyCharm、C++的CLion、前端的WebStorm等。使用JetBrains的IDE,咱們能夠享受到它優秀的開箱即用的體驗和 jetbrains 積累十幾年的插件體系。

前些年,也就是Goland發佈以前,若是咱們但願用jetbrain的IDE進行GO的開發,須要經過它提供的插件支持。Goland發佈後,這些插件彷佛已經下架了。

不得不認可,Goland的功能層面作的確實很是完美。不過有幾點我想吐槽一下,首先必需要提的是,Jetbrians的IDE基本都存在着卡頓的毛病,資源消耗比較嚴重。雖然一些大牛提供了優化方案,但體驗下來,和其餘IDE依然沒有相比。

Goland的開箱即用,使它的問題不多,確實沒有多少可介紹的,裝起來基本就能夠開幹!

VS Code

由微軟開發的一款功能強大的現代化輕量級代碼編輯器IDE,免費開源。經過它強大的插件擴展能力,VS Code幾乎支持主流語言的項目開發。毫無例外,GO也是其中之一。

我之因此嘗試VS Code,並不是所謂的極客思惟,喜歡瞎折騰。而是由於jetbrains的IDE常常會卡的心痛,並且本身常常會在不一樣語言間切換。一次啓動多款Jetbrains的IDE,這是很痛苦的。

爲VS Code加入GO的開發能力,只需安裝一款插件便可,插件地址。安裝時,可能遇到一些問題,常見的就是,在安裝一些依賴包時會出現網絡下載失敗。關於緣由就不說了,你們都明白。不過,問題仍是要解決的。

舉個具體的例子吧!在GO插件時,咱們會經過go get golang.org/x/tools/xxx安裝某個包,這時候大機率出現網絡鏈接錯誤。咱們能夠通從github找到對應的倉庫,golang/tools,而後使用git命令下載後,放在GOPATH指定的目錄下,而後再安裝便可。

最後,插個題外話,VS Code使用的是Electron開發的,Electron是用HTML,CSS和JavaScript來構建跨平臺桌面應用程序的一個開源庫,NodeJS與Chromium的結合。所以,利用瀏覽器的特性,利用VS Code,咱們能實現不少奇葩的插件,例以下面這些插件。

GitHub Daily:裝上這幾個 VSCode 插件後,上班划水摸魚不是夢

Vim GO

細究起來,vim應該是一款文本編輯器,但它卻擁有了不少不應屬於文本編輯器的能力,好比單詞補全、ctags標籤跳轉、窗口分隔、崩潰文件恢復、文件diff、400多種文本高亮等。最重要的一點是,vim有一套本身的腳本語言,這爲它經過插件擴展本身的能力提供了可能。

將vim擴展成一款適合本身使用的GO IDE,不只要編寫許多複雜的配置與腳本,還須要各類插件的相互配合,才能實現咱們的目標。好比前面介紹的那些IDE的常見功能,在vim中都要逐一配置實現。

GO的vim環境搭建,須要用到一款很是重要的插件,vim-go。它由國外開發者提供,youtube上還有他的分享視頻,有興趣能夠去看看。vim-go提供了諸如代碼的編譯、執行、測試、代碼重構、錯誤提示等各類功能,具體瞭解可查看 vim-go教程

說明一點,雖然vim支持插件擴展,但它要集成出VS Code的體驗仍是很是困難的。我是不太清楚是否有這種可能,不過即便能實現,也是困難重重。當前,我正嘗試用vim配置GO開發環境,效果圖以下,一些功能還不完善。等成熟後,能夠寫篇文章,從簡到深地給你們介紹下。

當前我用的主要就是這三款IDE,Goland主要在工做中使用,而VSC和vim在平時使用。固然,還有不少其餘IDE,下面也簡單介紹下,但由於沒怎麼使用過,因此很難有經驗之談了。

Sublime Text

最初用VS Code,感受它的使用習慣和Sublime類似。但說到Sublime,都說它是強大文本編輯器,而它的編碼能力也是插件擴展來的。GoSublime就是爲Sublime擴展GO功能的插件。

LiteIDE
一款輕量級的IDE,據說是由中國人開發的。可能在Goland出現以前比較流行。也或許是本身孤陋寡聞,不知道如今還有多少人在用。

Eclipse
開源的IDE,盛行了多年,有着豐富的資源和粉絲人羣,應該是Java開發最喜歡的IDE吧。GoEclise是Eclipse針對Goland的插件。從github瞭解到,這個項目好像好久沒有更新了。

Atom
與VS Code同樣,都是基於Node-Webkit,即Electron,開發的。是由github開源的文本編輯器。go-plus是Atom針對Golang開發的插件

總結

本篇文章從爲何要使用IDE談起,介紹了IDE的一些發展史。同時,總結了一款基本的IDE一般都會提供哪些功能。只要瞭解了這些,能夠幫助咱們之後更好地使用它們。最後,介紹瞭如今市面上流行的幾款IDE,並在我力所能及的範圍內分析了它們各自的優劣。

相關文章
相關標籤/搜索