您的位置:首頁>正文

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

自推出以來, 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用起來更容易,也更快。

免責聲明:轉載自網路 不用於商業宣傳 版權歸原作者所有 侵權刪

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用起來更容易,也更快。

免責聲明:轉載自網路 不用於商業宣傳 版權歸原作者所有 侵權刪

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示