感謝平臺分享-http://bjbsair.com/2020-04-10/tech-info/53309.html
===
自推出以來,Google的Go編程語言(Golang)一直受到主流用戶的歡迎。 在2016年12月的一項調查中,在3595名受訪者中,有89%的人聲稱他們在工作中或工作外使用Go語言編程。
此外,就專業知識和偏好而言,Go在編程語言中排名最高。 2017年7月,Go在"年度Tiobe年度編程語言"中排名第10,從去年的第55位躍升至第10位。
顯然,Go吸引了來自各個領域的許多程序員和軟件開發外包專業人士。 可以肯定地說,這是因爲Go的易用性。
作爲一種編譯後的開源編程語言,Go使開發人員可以輕鬆構建簡單,可靠且高效的軟件。 它是更保守的語言(例如C和C ++)的創新和發展的產物。
使用Go,可以減少代碼鍵入的數量,並且在不犧牲性能的情況下編寫強大的API變得更加容易。 專爲可伸縮性和併發性而設計,Go使優化成爲可能。 編譯器可以在運行時之前執行所有代碼檢查工作。
我們爲Golang整理了一些頂級框架,IDE和工具,供您快速參考。 在瀏覽器上爲其添加書籤,以便您在使用Go!時都能回來!
Golang框架
Web框架可幫助開發人員儘可能輕鬆,快速地構建應用程序。 Go還是相對較新的東西,因此使用具有足夠文檔的框架很重要。
這裏有9個框架,可用於幫助您使用Go語言構建項目。
1.Revel
作爲Go的高生產率框架,Revel包括一個"熱代碼重載"工具,可讓您在每次文件更改時重建項目。 它還包含各種全面的高性能功能,因此您無需查找外部庫即可集成到框架中。
2.Beego
Beego是一個成熟的MVC框架,具有自己的日誌記錄庫,ORM和Web框架。 您無需查找和安裝第三方庫。 它具有一個稱爲Bee工具的內置工具,該工具可以監視代碼更改並在檢測到更改時運行任務。
Beego可以爲您節省很多時間,尤其是在您確定日誌記錄框架或應用程序結構的項目開始時。
3.Martinina
Martinina受Sinatra的啓發,是一個非常輕便但功能強大的框架。 它是爲在Golang中編寫模塊化Web應用程序和服務而開發的。
它採用非侵入式設計,使用起來快速簡便,幷包含各種處理程序和中間件。 它能夠以HTML5模式爲AngularJS應用執行基本路由,異常處理和默認文檔服務。
馬蒂尼(Martini)最好的功能是使用反射,它使開發人員可以動態地將數據插入處理程序函數並添加新服務。 Martini也與http.HandlerFunc接口完全兼容。 但是不利的是,Martini框架不再得到維護。
4.Gin
Gin Gonic是一個Web框架,具有類似於martini的API,但性能要好得多。 如果您以前使用過馬提尼酒,那麼您會熟悉Gin Gonic。 否則,您只需要10分鐘即可學習Gin。 就這麼簡單!
Gin Gonic是一個簡約框架,僅包含最基本的庫和功能。 這使其非常適合開發高性能REST API。 另外,它比馬提尼酒快40倍。
您可以添加中間件,嵌套組,JSON驗證和呈現,但是它仍保持最佳性能。 Gin Gonic使用Go最快的HTTP路由器httprouter。
5.Buffalo
使用Buffalo使用Go構建新的Web應用程序既快速又簡單。 當您開始一個新項目時,Buffalo已經爲您提供了從前端到後端開發的所有設置。
它具有熱重載功能,這意味着dev命令將自動監視.go和.html文件。 然後它將爲您重建並重新啓動您的二進制文件。 只需運行dev命令,您就可以立即看到所做的更改!
Buffalo不僅僅是一個框架,而是一個整體的Web開發生態系統,可讓您直接構建應用程序。
6.Goji
Goji是一個輕量級且快速的Web框架,具有可組合性和簡單性是其首要任務。 類似於net / http.ServeMux,Goji是一個簡約的HTTP請求多路複用器。 它包括Einhorn支持,使您可以在Goji中獲得websocket支持。
其他功能包括URL模式,可重新配置的中間件堆棧,正常關閉等。 枸杞可用於生產中,已爲多個組織提供了數十億個請求。
7.Tiger Dropnic
Tiger Dropnic受Dropwizard的啓發,是一個Go框架,用於開發JSON Web服務和構建高性能REST API。 爲了忠實於Golang的原則,Tiger Tonic努力使功能保持正交。
Tiger Tonic的缺點是在構建大型後端應用程序方面的不足。
8. Gocraft
Gocraft是另一個功能強大但極簡的框架,可提供快速且可擴展的路由性能。 它將路由從標準庫添加到net / http包。
Gocraft是一個Go mux和中間件軟件包,具有轉換和反射功能,因此您可以靜態鍵入代碼。 您還可以使用內置的中間件添加可選功能或編寫自己的中間件。
由於性能始終是開發人員最關心的問題之一,因此Gocraft是開發人員的絕佳選擇。 使用Gocraft框架編寫後端網絡應用程序非常容易。
9.Mango
儘管Mango的創建者Paul Bellamy並未對其進行積極維護,但許多Go用戶仍在使用它。 Mango的偉大之處在於其模塊化。 您可以從各種庫中選擇要包含在項目中的庫。
Mango使您可以儘可能快速,輕鬆地構建HTTP功能的可重用模塊。 它將中間件和應用程序列表編譯到單個http服務器對象中,以使您的代碼保持獨立。
Golang集成開發環境(IDE)
用於Golang的IDE與Go語言一起變得越來越流行。 儘管許多開發人員仍然喜歡使用文本編輯器,但許多開發人員也喜歡使用IDE。
如果您正在使用廣泛的代碼庫進行大型項目,IDE可以幫助您輕鬆組織代碼並進行導航。 此外,IDE可以幫助您測試代碼並進行相應的編輯。
以下是可與Golang完美搭配的頂級IDE。
1.Goland
軟件開發公司JetBrains發佈了另一個可靠的IDE,但這次是針對Golang。 Gogland是一種商業IDE,可爲Go開發人員提供強大的人體工程學環境。 它還具有編碼幫助,調試器和集成終端。
由於一家老牌公司創建了Gogland,因此它具有廣泛的IntelliJ插件生態系統,如果您需要更多工具,可以在其中獲得更多工具。
2. Visual Studio Code
Visual Studio Code由Microsoft創建,是功能齊全的開源IDE和代碼編輯器,支持多種編程語言。 它具有IntelliSense的智能完成功能; 使用斷點,調用堆棧和交互式控制檯進行調試; 內置的Git集成; 以及分層文件夾和文件瀏覽器。
作爲另一個流行的IDE,Visual Studio Code具有一個由Go開發人員組成的支持社區,這些社區定期進行貢獻。 使用Visual Studio Code,您可以使用一系列可用插件來擴展功能。
3. LiteIDE
LiteIDE是5年前創建的首批以Golang爲中心的開源IDE之一。 作爲具有獨特外觀的C ++ Qt應用程序,LiteIDE提供代碼管理,可配置的構建命令,gdb和Delve調試器,使用WordApi自動完成和主題化,基於MIME類型的系統等。 它還提供JSON和Golang支持。
4.Wide
Wide是面向Golang程序員的基於Web的IDE。 專爲協作開發而設計,最適合團隊和網絡開發機構。 廣泛的功能包括代碼突出顯示,調試,Git集成等。
因爲Wide是由中國開發人員創建和維護的,所以它的大多數文檔和支持都是中文的。
5.帶有go-plus插件的Atom
如果您已經在使用Atom,則可以通過名爲go-plus的開源軟件包來改善Golang中的代碼編輯體驗。 使用go-plus,您可以獲得有關語法和構建錯誤的即時,實時反饋。
go-plus軟件包在Atom中提供了幾乎所有的Golang支持。 它也可以用於工具,構建流程,短絨,獸醫和覆蓋工具。
Go-plus還包括各種代碼段和功能,例如使用gocode自動完成功能,使用gofmt進行代碼格式化,goreturns或goimports等。
6.使用GoClipse的Eclipse
由於Eclipse是廣泛流行的IDE,因此已經爲其創建了許多插件。 GoClipse是用於Golang的Eclipse插件,可提供Go源代碼編輯以及可配置的語法突出顯示,自動縮進和大括號補全。
GoClipse還可以用作項目嚮導和生成器,可以立即報告語法和生成錯誤。 GoClipse的其他功能包括調試功能和代碼輔助。
7.使用GoSublime昇華文本
Sublime Text是另一個複雜的文本編輯器,擁有大量的貢獻者和開發者社區。 因此,已爲此IDE創建了各種各樣的插件。
GoSublime是Sublime Text 3的Golang插件,可提供Gocode的代碼完成功能,在連接代碼時檢查棉絨/語法,自動添加和刪除軟件包導入等。
8. Vim和vim-go插件
Vim是一個免費的開源IDE,可以使用各種插件進行自定義和配置。 如果您是Golang程序員,則可以將Vim與Fatih Arslan創建的vim-go插件一起使用。 Vim-go自動安裝所有必需的二進制文件,以爲Golang提供平滑的Vim集成。
Vim-go是用於編寫和開發Go的功能強大的插件套件。 它的功能包括高級源代碼分析,添加和刪除導入路徑,多個3rd Liner支持,goto定義,快速文件執行等等。
Vim-go是高度可定製的,具有可以根據您的需要啓用或禁用的各個功能。
9.Komodo
Komodo是功能齊全的Go語言IDE,它支持其他編程語言,例如Node.js,Python,Ruby,Perl等。 使用此Go IDE,您可以輕鬆編寫乾淨的代碼。 它的功能包括高級代碼編輯器,智能代碼完成,語法檢查,版本控制和單元測試,以及Go代碼智能功能,可用於代碼瀏覽和代碼提示。
Komodo的優點在於,它對於團隊協作非常有效,因爲多個開發人員可以同時編輯文檔。 只需一個許可證,即可將Komodo安裝在Mac,Windows或Linux上。
10.帶有Go語言的IntelliJ IDEA(golang.org)支持插件
IntelliJ IDEA(與JetBrains相同的公司)是可以通過Go語言支持插件與Golang一起使用的IDE。 如果要將IntelliJ IDEA與Golang一起使用,則需要安裝此插件,儘管與Gogland相比功能有限。
Golang工具
Golang工具可用於各種項目和Web應用程序。 開發人員可以使用這些有用的工具儘可能快速,輕鬆地編寫代碼和構建應用程序。
以下是熱門的Golang工具列表,供您參考。
1. Apicompat
Apicompat是一種新的Go語言工具,可幫助開發人員檢測向後,不兼容的更改和導出的聲明。
2. Checkstyle
受Java Checkstyle啓發,Checkstyle for Golang可打印出編碼風格建議。 開發人員還可以通過它檢查文件的行/功能和行/參數號,然後用戶可以對其進行配置。
3.Depth
深度是另一個有用的Golang工具,可幫助Web開發人員檢索和可視化Go源代碼依賴項樹。 它可以用作獨立的命令行應用程序,也可以用作您自己項目中的特定程序包。 您可以通過在解析之前簡單地在樹上設置適當的標誌來添加自定義項。
4.Go-swagger
該工具包包含多種功能。 Go-Swagger是Swagger 2.0的實現,可以序列化和反序列化swagger規範。 它是RESTful API的簡約但功能強大的代表。
使用Go-Swagger,您可以擴大規格文檔,針對jsonschema和其他額外規則進行驗證。 其他功能包括代碼生成,基於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是一個網絡開發工具,可讓您以Graphviz的點格式可視化Go程序的調用圖。 當使用複雜的代碼庫構建大型項目時,此工具特別有用。 當您想了解其他開發人員的代碼結構或重建其他人的項目時,這也很有用。
使用go-callvis,開發人員可以將重點放在程序中的特定程序包上。 根據包裝將功能分組,並根據類型將方法分組; 並將包限制爲自定義路徑前綴,而忽略包含它們的包。
7.Gonative
Gonative是一個簡單的Golang工具,可讓您使用本機庫構建Go工具鏈,這些庫可以交叉編譯,同時仍使用啓用了Cgo的stdlib軟件包版本。
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提取直接拉出新的依賴項或更新現有的依賴項,並通過govendor遷移來移動舊系統。
總結
如果您來自JS / Node背景,則需要學習一些新的編程概念,例如協程,通道,帶有編譯的嚴格類型,接口,結構,指針以及其他一些區別。 但是,一旦陷入困境,您會發現Golang更加易於使用和快速使用。