Golang指南:頂級Golang框架、IDE和工具列表

2017-10-24    分類:WEB開發、程式設計開發、首頁精華0人評論發表於2017-10-24

本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

自推出以來,Google的Go程式語言(Golang)越來越受主流使用者的歡迎。在2016年12月的一份調研中,3,595名受訪者中有89%表明他們在工作中或工作以外用Go語言程式設計。

此外,在程式語言中,Go語言在專業知識和偏好方面排名最高。2017年7月,在Tiobe的年度程式語言排名中,Go語言從去年的第55名一躍跳到了第10名。

顯然,Go語言吸引了來自不同學科的許多程式設計師和軟體開發外包專業人士。可以這麼說,這全都是因為Go語言的易用性。

作為一種編譯型的開源程式語言,Go語言能使開發人員輕鬆構建簡單可靠又高效的軟體。它是更保守的語言,如C和C ++的創新和演變的產物。

使用Go語言,可以減少程式碼輸入量,並且編寫穩健的API而不犧牲效能變得更加容易。 Go語言旨在實現可擴充套件性和併發性,從而實現優化。編譯器可以在執行時前執行所有程式碼檢查工作。

我們收羅了Golang的頂級框架、IDE和工具列表,以供大家快速參考。建議新增到瀏覽器書籤中,以便隨時檢視!

Golang框架

Web框架可以幫助開發人員儘可能方便快捷地構建應用程式。Go語言還比較新,所以使用的框架帶有充足的文件很重要。

這裡有9個框架可幫助你使用Go語言構建專案。

1.Revel

作為Go語言的高效生產力框架,Revel包含的Hot Code Reload工具可以讓你在每次更改檔案時重建專案。它還包括各種全面和高效能的功能,因此你不需要找外部庫整合到框架中。

2.Beego

Beego是一個完整的MVC框架,有自己的日誌庫、ORM和Web框架。你不需要再去安裝第三方庫。它有一個稱為Bee Tool的內建工具,用於監視程式碼更改,並在檢測到更改時執行任務。

Beego可以為你節省很多時間,特別是在專案一開始,你要弄清楚日誌框架或應用程式結構的時候。

3.Martini

受Sinatra啟發,Martini是一個極其輕巧但功能強大的框架。它被開發用於用Golang編寫模組化Web應用程式和服務。

它的特點是非侵入式設計,快速易用,且包括各種處理程式和中介軟體。它能夠為HTML5模式的AngularJS應用程式執行基本路由,異常處理和預設文件服務。

Martini的最佳功能是可以使用反射,它允許開發人員動態地將資料插入到處理函式中並新增新的服務。Martini也完全相容http.HandlerFunc介面。不過,缺點在於Martini框架不再維護了。

4.Gin Gonic

Gin Gonic是一個Web框架,有類似Martini的API,但效能更好。如果你以前使用過Martini,那麼你也一定熟悉Gin Gonic。沒用過Martini也沒關係,只需要學習10分鐘就能掌握Gin。就是這麼容易!

Gin Gonic是一個極簡化的框架,僅包含最重要的庫和功能。這使得它非常適合開發高效能REST API。此外,它比Martini快四十倍。

你可以新增中介軟體、巢狀組、JSON驗證以及渲染,並依然保持其最佳效能。Gin Gonic使用httprouter,Go語言最快的HTTP路由器。

5.Buffalo

要構建Go語言新的Web應用程式,使用Buffalo是一個快速又簡單的方法。當你開始一個新專案時,Buffalo可以為你提供一切——從前端到後端開發。

它具有熱過載功能,這意味著dev命令將自動檢視.go和.html檔案。然後,它將為你重建並重啟二進位制檔案。執行dev命令,你就能看到變化在你的眼前發生!

Buffalo不僅僅是一個框架——它也是一個整體的Web開發生態系統,可以讓你直接構建應用程式。

6.Goji

Goji是一個輕量級的快速Web框架,將可組合性和簡單性作為其主要優先順序。很像net / http.ServeMux,Goji是一個極簡的HTTP請求複用器。它包括Einhorn支援,允許在Goji中提供Websocket支援。

其他功能包括URL模式,可重新配置的中介軟體堆疊,正常關機等。Goji可以用於生產,並在若干組織中提供了數以億計個請求。

7.Tiger Tonic

受Dropwizard啟發,Tiger Tonic是開發JSON Web服務和構建高效能REST API的Go框架。為了忠於Golang的原則,Tiger Tonic努力保持正交特性。

Tiger Tonic的缺點在於構建大型後端應用程式尚有不足之處。

8. Gocraft

這是又一個強大而簡約的框架,Gocraft提供快速和可擴充套件的路由效能。它將路由新增來自標準庫的net / http包中。

Gocraft是一個Go mux和中介軟體軟體包,具有強大的投射和反射能力,可以靜態輸入程式碼。你還可以使用內建中介軟體新增可選功能或者自己編寫。

由於效能始終是開發人員最關心的問題之一,所以Gocraft是開發人員的絕佳選擇。而且使用Gocraft框架編寫後端Web應用程式很容易。

9.Mango

雖然Mango沒有得到創作者Paul Bellamy的積極維護,但Go語言的許多使用者仍然在使用它。Mango的優勢在於它的模組化。你可以從各種庫中選擇,以包含在你的專案中。

Mango讓你可以儘可能快速又輕鬆地構建可重複使用的HTTP功能模組。它將一系列中介軟體和應用程式編譯成單個HTTP伺服器物件,以保持程式碼獨立。

Golang的整合開發環境(IDE)

Golang的IDE隨著Go語言的普及越來越受大家的歡迎。雖然還是有許多開發人員仍然喜歡使用文字編輯器,但也有很多開發人員更傾向於使用IDE。

如果你正工作於具有廣泛程式碼庫的大型專案,那麼IDE可以幫助你輕鬆組織程式碼和導航。此外,IDE可以幫助你測試程式碼並相應地編輯。

以下是用Golang工作良好的頂尖IDE。

1.Gogland

軟體開發公司JetBrains釋出了另一個可靠的IDE,這次是針對Golang釋出的。Gogland是一個商業IDE,為Go開發人員提供了一個強大的人機工程學環境。它還具有編碼協助、偵錯程式和整合終端的功能。

由於Gogland是由一家已成立的公司建立的,所以它擁有廣泛的IntelliJ外掛生態系統,讓你可以在需要更多工具的時候獲得更多。

2. Visual Studio Code

由Microsoft建立的Visual Studio Code是一個功能齊全的開源IDE和程式碼編輯器,支援各種各樣的程式語言。它的特點是智慧完成;使用斷點呼叫、呼叫堆疊和互動式控制檯除錯;內建Git整合;以及分層資料夾和檔案瀏覽器。

作為另一個流行的IDE,Visual Studio Code有一個Go開發人員定期貢獻的支援社群。使用Visual Studio Code,你可以使用可用外掛陣列來擴充套件功能。

3. LiteIDE

LiteIDE是五年多前建立的首個以Golang為中心的開源IDE。作為具有獨特外觀的C ++ Qt應用程式,LiteIDE提供程式碼管理、可配置構建命令、gdb和Delve偵錯程式,使用WordApi——基於MIME型別的系統——自動完成和建立等等。它還提供JSON和Golang支援。

4.Wide

Wide是Golang程式設計師使用的基於Web的IDE。它專為協作開發而設計,適用於團隊和Web開發機構。Wide功能包括程式碼高亮、除錯、Git整合等。

因為Wide是由一名中國開發者建立和維護的,所以其大部分文件和支援是中文的。

5.帶有Go-Plus外掛的Atom

如果你已經在使用Atom,那麼你可以通過一個名為go-plus開源軟體包來改善Golang語言的程式碼編輯體驗。使用go-plus,你可以立即獲得關於語法和構建錯誤的實時反饋。

Go-plus軟體包提供了幾乎所有Atom中對Golang的支援。它還可以用於工具,構建流程,linters,vet和coverage工具。

Go-plus還包括各種程式碼片段和功能,如gocode的自動完成,gofmt、goreturns或goimports等的程式碼格式化。

6.帶有GoClipse的Eclipse

由於Eclipse是廣受歡迎的IDE,因此我們為其建立了許多外掛。GoClipse是針對Golang的Eclipse外掛,提供Go原始碼編輯,具有可配置的語法高亮和自動縮排以及大括號完成功能。

GoClipse還可以作為專案嚮導和構建器來立即報告語法和構建錯誤。GoClipse的其他功能包括除錯功能和程式碼輔助。

7.帶有GoSublime的Sublime Text

Sublime Text也是一個複雜的文字編輯器,具有大量的貢獻者和開發者社群。因此,開發者為此IDE建立了各種各樣的外掛。

GoSublime是Sublime Text 3針對Golang的外掛,在你編寫程式碼時,提供來自Gocode的程式碼完成,lint /語法檢查,自動新增和刪除程式包匯入,等等。

8.帶有Vim-Go外掛的Vim

Vim是一個免費的開源IDE,可以定製和配置各種外掛。如果你是Golang程式設計師,那麼你可以使用Vim中由Fatih Arslan建立的vim-go外掛。Vim-go自動安裝所有必需的二進位制檔案,為Golang提供平滑的Vim整合。

Vim-go是一款功能強大的外掛套件,用於撰寫和開發Go。其功能包括高階原始碼分析,新增和刪除匯入路徑,多次第三方支援,goto定義,快速檔案執行等等。

Vim-go是高度可定製的,可以根據你的需要啟用或禁用各種功能。

9.Komodo

Komodo是一個全功能的Go語言IDE,並且支援如Node.js,Python,Ruby,Perl等其他程式語言。使用這個Go IDE,你可以輕鬆地編寫乾淨的程式碼。其功能包括高階程式碼編輯器,智慧程式碼完成,語法檢查,版本控制和單元測試,以及允許程式碼瀏覽和程式碼提示的Go Code Intelligence。

Komodo的優點是,它可以很好地協助團隊合作,因為允許多個開發人員同時編輯文件。只要一個許可證,Komodo就可以安裝在Mac,Windows或Linux上。

10. 帶有Go語言(golang.org)支援外掛的IntelliJ IDEA

IntelliJ IDEA(由JetBrains公司開發)是可以通過Go語言支援外掛從而使用Golang的IDE。如果你想要在IntelliJ IDEA中使用Golang,那麼你需要安裝此外掛,雖然不同於Gogland,它的功能有限。

Golang工具

Golang工具可用於各種專案和Web應用程式。使用這些有用的工具可以幫助開發人員儘可能快速而輕鬆地編寫程式碼並構建應用程式。

這裡有一系列頂級的Golang工具以供參考。

1.Apicompat

Apicompat是一種新的Go語言工具,可幫助開發人員檢測向後不相容的更改和匯出的宣告。

你可以通過Apicompat避免誤報。但是,Apicompat並不能檢測到每個向後不相容的變化。並且,庫作者沒有考慮到交換引數和其他更改的需要。

2.Checkstyle

受Java Checkstyle啟發,針對Golang的Checkstyle輸出編碼風格的建議。它還允許開發人員檢查檔案行/函式和行/引數號,然後由使用者進行配置。

3.Depth

又一個有用的Golang工具,Depth可幫助Web開發人員檢索和視覺化Go原始碼依賴關係樹。它可以用作獨立的命令列應用程式或作為專案中的特定包。你可以通過在解析之前在Tree上設定相應的標誌來新增自定義。

4.Go-Swagger

該工具包包括各種功能和功能。Go-Swagger是Swagger 2.0的一個實現,可以序列化和反序列化swagger規範。它是RESTful API簡約但強大的代表。

通過Go-Swagger,你可以swagger規範文件,驗證JSON模式以及其他額外的規則。其他功能包括程式碼生成,基於swagger規範的API生成,基於程式碼的規範文件生成,擴充套件了的字串格式,等等。

5.Go Meta Linter

如果你需要執行Go lint工具並同時使其輸出正常化,那麼Go Meta Linter可以為你辦到。Go Meta Linter旨在與文字編輯器或IDE整合,如如Sublime Linter外掛,Atom go-plus包,Emacs Flycheck檢查器,Vim / Neovim,以及Go for Visual Studio Code一起使用。它還支援各種各樣的linter和配置檔案,如JSON。

6.Go-callvis

Go-callvis是一個Web開發工具,允許你使用Graphviz的點格式視覺化Go程式的呼叫圖。此工具在構建具有複雜程式碼庫的大型專案時特別有用。它在你想要了解另一個開發人員的程式碼結構或重建別人的專案時,也很有用。

通過go-callvis,開發人員可以在程式中關注特定包;根據軟體包的分組函式和根據型別的方法;以及將軟體包限制到自定義路徑字首,並忽略那些包含它們的自定義字首。

7.Gonative

Gonative是一個簡單的Golang工具,讓你能夠使用本機庫構建Go工具鏈,而這可以在使用stdlib軟體包的Cgo-enabled版本時進行交叉編譯。

Gonative為每個平臺下載二進位制發行版,並將它們的庫複製到正確的位置。同時,Gonative設定正確的mod時間,以避免不必要的重建。

不幸的是,Gonative在Windows上仍然未經測試。此外,也沒有提供Linux / arm支援。

8.Grapes

Grapes是一種輕量級的Golang工具,旨在輕鬆地通過SSH分發命令。它由Yaron Sumel編寫和積極維護。

Grapes不久將支援完整的主機金鑰驗證,這是開發人員應該注意到的。

9.Gosimple

Golang linter的偉大之處在於它專注於簡化Go原始碼。Gosimple始終將最新的Go版本作為目標,因此它需要Go 1.6或更高版本。

如果有新的Go版本,gosimple會建議最輕鬆和最簡單的方法來避免複雜的構造。

10.Go Vendor

Go Vendor是與標準Vendor資料夾相容的Golang工具。它允許開發人員通過govendor add / update從$GOPATH中複製現有的依賴關係。你還可以通過govendor fetch直接提取新的依賴關係或更新現有的依賴關係,以及使用govendor遷移來移動舊的系統。

總結

如果你有JS / Node背景,那麼你還需要學習一些新的程式設計概念,如協同程式,通道,嚴格的型別與編譯,接口,結構,指標和其他一些差異。但是,一旦你進入狀態,你會發現Golang用起來更容易,也更快。

譯文連結:http://www.codeceo.com/article/golang-framework-ide-tools.html
英文原文:Golang Guide: A List of Top Golang Frameworks, IDEs, and Tools
翻譯作者:碼農網 – 小峰
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章