golang開發類庫推薦

飞翔码农發表於2024-04-02

gin

  • star:74.6k

  • 地址:https://github.com/gin-gonic/gin

  • gin是最受開發者歡迎的 Web 框架,它有諸多的優點,效能高、輕量級和簡潔的 API 設計,社群活躍度高,靈活、可擴充套件性強。當然了,最最主要的就是效能非常高,能夠處理大量的併發請求。是web框架的不二之選。

  • 使用體驗:我們新的專案都是使用gin框架,優點很明顯,高效能、輕量、靈活;缺點就是太靈活了,就缺少了很多模組,比如ORM模組、MySQL模組、Redis模組等,對初學者來說還是有一定門檻的,想直接拿著gin擼一個專案出來還是有一定難度。

gorm

  • star:35k

  • 地址:https://github.com/go-gorm/gorm

  • gorm是Go語言中最受歡迎的ORM(Object-Relational Mapping)框架,它提供了強大的功能和簡潔的 API,讓資料庫操作變得更加簡單和易維護,避免了手寫SQL語句的麻煩。

  • 使用體驗:GO的orm使用的種類不多,只使用過gorm和beego的orm,使用感受上沒有太大的區別。

beego

  • star:30.7k

  • 地址:https://github.com/beego/beego

  • Beego是一個開源的web框架,被廣泛應用與Go語言的 web應用程式 的開發。它支援路由控制、配置管理、Session管理、日誌、ORM等各種功能。它的核心設計是簡單、易於學習和開發。

  • 使用體驗:beego是我們使用最多的框架,當時大多數同學都是從PHP轉過來的,幾乎沒任何門檻,就是按照PHP的方式編寫程式碼,只不過把語言換了一下,整合的模組比較多,配置檔案解析、LOG、ORM、session等等,看它的文件很容易擼出一個新專案,初學者、跨語言的建議使用beego,感官上沒有用 Go 語言的思維去設計框架,各種模組比較臃腫,效能上跟輕量型的框架還是有差距的。

cli

  • star:21.4k

  • 地址:https://github.com/urfave/cli

  • cli提供了簡單快速的構建命令列的功能。可以很容易的透過命令設定引數和配置執行業務邏輯。

  • 使用體驗:我們的crontab的定時指令碼都是使用cli的命令列執行的,挺好用的。當然了也沒使用過其他的命令列的類庫。

zap

  • star:20.6k

  • 地址:https://github.com/uber-go/zap

  • zap是 uber 開源的 Go 高效能日誌庫,支援不同的日誌級別,支援日誌記錄結構化,分配資源最小。

  • 使用體驗:高效能和靈活性兼具的日誌服務,碰過的幾乎所有的專案都是用 zap 記錄日誌,當然了,還是有一些門檻的。可供選擇的好用的日誌類庫也不多。

mysql

  • star:14.1k

  • https://github.com/go-sql-driver/mysql

  • 第三方的 MySQL 驅動,專為 Go 的 sql 標準庫設計。它提供了對 MySQL 特性的支援,包括連線池、事務處理等,它的特點是高效能、安全性。

  • 使用體驗:這個感覺沒啥可說的,底層的協議驅動,各種ORM的框架、拼SQL的寫法,後面都是使用mysql驅動的。

redigo

  • star:9.7k

  • 地址:https://github.com/gomodule/redigo

  • Redigo 是一個Go 語言 Redis 客戶端庫,它提供了一個簡單的介面來執行 Redis 命令,它支援 Redis 的多種資料型別和操作,包括字串、雜湊、列表、集合和有序集合等。它也支援釋出/訂閱模式、事務、管道和連線池等功能。

  • 使用體驗:我們的專案使用Redis客戶端都是redigo,可使用的Redis客戶端就上面這兩個,找一個順眼的用就行了。

errors

  • star:8.1k

  • 地址:https://github.com/pkg/errors

  • pkg/errors 是一個 Go 語言的錯誤處理包,它提供了一個用於錯誤處理的機制,旨在簡化錯誤資訊的建立和傳播。這個包提供了一種構建錯誤的原因和上下文的方法,使得在除錯和錯誤追蹤時更加直觀和方便。

  • 使用體驗:我們的每個專案錯誤處理都是使用errors,它的的優勢是錯誤多次封裝包裹和傳寄,可以很方便的拿到錯誤的呼叫鏈和堆疊資訊。

goconvey

  • star:8.1k

  • 地址:https://github.com/smartystreets/goconvey

  • GoConvey 是一個用於 Go 程式 測試框架。它透過提供一種易於閱讀和編寫的測試風格,幫助開發者定義和執行測試用例。特別適合於編寫複雜的測試場景,提高程式碼的可讀性和可維護性。

  • 使用體驗:好用,本來需要輸出列印測試結果,GoConvey 讓測試成為專案的一部分,提高測試程式碼的可讀性,所有人讀程式碼一目瞭然。

gin

  • star:4.2k

  • 地址:https://github.com/codegangsta/gin

  • gin是用於實時載入Go Web應用程式的程式。只需 gin 執行在應用程式的目錄中,gin就是實時監測,檢測到程式碼更改後,將自動重新編譯程式碼,應用在下次收到HTTP請求時就是用的修改後臺的程式碼。

  • 使用體驗:覺得熱載入服務很有必要,這個也特別好用,不知道star為啥這麼少,只要檔案有修改,codegangsta/gin 就會自動編譯然後執行,在程式碼編寫和除錯的階段非常有用,極大的提高了效率。

相關文章