gin
-
star:74.6k
-
gin是最受開發者歡迎的 Web 框架,它有諸多的優點,性能高、輕量級和簡潔的 API 設計,社區活躍度高,靈活、可擴展性強。當然了,最最主要的就是性能非常高,能夠處理大量的併發請求。是web框架的不二之選。
-
使用體驗:我們新的項目都是使用gin框架,優點很明顯,高性能、輕量、靈活;缺點就是太靈活了,就缺少了很多模塊,比如ORM模塊、MySQL模塊、Redis模塊等,對初學者來說還是有一定門檻的,想直接拿着gin擼一個項目出來還是有一定難度。
gorm
-
star:35k
-
gorm是Go語言中最受歡迎的ORM(Object-Relational Mapping)框架,它提供了強大的功能和簡潔的 API,讓數據庫操作變得更加簡單和易維護,避免了手寫SQL語句的麻煩。
-
使用體驗:GO的orm使用的種類不多,只使用過gorm和beego的orm,使用感受上沒有太大的區別。
beego
-
star:30.7k
-
Beego是一個開源的web框架,被廣泛應用與Go語言的 web應用程序 的開發。它支持路由控制、配置管理、Session管理、日誌、ORM等各種功能。它的核心設計是簡單、易於學習和開發。
-
使用體驗:beego是我們使用最多的框架,當時大多數同學都是從PHP轉過來的,幾乎沒任何門檻,就是按照PHP的方式編寫代碼,只不過把語言換了一下,集成的模塊比較多,配置文件解析、LOG、ORM、session等等,看它的文檔很容易擼出一個新項目,初學者、跨語言的建議使用beego,感官上沒有用 Go 語言的思維去設計框架,各種模塊比較臃腫,性能上跟輕量型的框架還是有差距的。
cli
-
star:21.4k
-
cli提供了簡單快速的構建命令行的功能。可以很容易的通過命令設定參數和配置執行業務邏輯。
-
使用體驗:我們的crontab的定時腳本都是使用cli的命令行執行的,挺好用的。當然了也沒使用過其他的命令行的類庫。
zap
-
star:20.6k
-
zap是 uber 開源的 Go 高性能日誌庫,支持不同的日誌級別,支持日誌記錄結構化,分配資源最小。
-
使用體驗:高性能和靈活性兼具的日誌服務,碰過的幾乎所有的項目都是用 zap 記錄日誌,當然了,還是有一些門檻的。可供選擇的好用的日誌類庫也不多。
mysql
-
star:14.1k
-
第三方的 MySQL 驅動,專爲 Go 的 sql 標準庫設計。它提供了對 MySQL 特性的支持,包括連接池、事務處理等,它的特點是高性能、安全性。
-
使用體驗:這個感覺沒啥可說的,底層的協議驅動,各種ORM的框架、拼SQL的寫法,後面都是使用mysql驅動的。
redigo
-
star:9.7k
-
Redigo 是一個Go 語言 Redis 客戶端庫,它提供了一個簡單的接口來執行 Redis 命令,它支持 Redis 的多種數據類型和操作,包括字符串、哈希、列表、集合和有序集合等。它也支持發佈/訂閱模式、事務、管道和連接池等功能。
-
使用體驗:我們的項目使用Redis客戶端都是redigo,可使用的Redis客戶端就上面這兩個,找一個順眼的用就行了。
errors
-
star:8.1k
-
pkg/errors 是一個 Go 語言的錯誤處理包,它提供了一個用於錯誤處理的機制,旨在簡化錯誤信息的創建和傳播。這個包提供了一種構建錯誤的原因和上下文的方法,使得在調試和錯誤追蹤時更加直觀和方便。
-
使用體驗:我們的每個項目錯誤處理都是使用errors,它的的優勢是錯誤多次封裝包裹和傳寄,可以很方便的拿到錯誤的調用鏈和堆棧信息。
goconvey
-
star:8.1k
-
GoConvey 是一個用於 Go 程序 測試框架。它通過提供一種易於閱讀和編寫的測試風格,幫助開發者定義和執行測試用例。特別適合於編寫複雜的測試場景,提高代碼的可讀性和可維護性。
-
使用體驗:好用,本來需要輸出打印測試結果,GoConvey 讓測試成爲項目的一部分,提高測試代碼的可讀性,所有人讀代碼一目瞭然。
gin
-
star:4.2k
-
gin是用於實時加載Go Web應用程序的程序。只需 gin 運行在應用程序的目錄中,gin就是實時監測,檢測到代碼更改後,將自動重新編譯代碼,應用在下次收到HTTP請求時就是用的修改後臺的代碼。
-
使用體驗:覺得熱加載服務很有必要,這個也特別好用,不知道star爲啥這麼少,只要文件有修改,codegangsta/gin 就會自動編譯然後執行,在代碼編寫和調試的階段非常有用,極大的提高了效率。