首頁  >  文章  >  後端開發  >  分享十個優秀的 Go 類庫

分享十個優秀的 Go 類庫

Guanhui
Guanhui轉載
2020-06-16 17:46:304279瀏覽

分享十個優秀的 Go 類庫

1. Golang-Set

#Go 有數組,切片,映射,但它沒有集合。您可以使用布林映射來模擬一個集合,但是最好擁有一個具有正確操作和語義的實際資料類型。

這是 golang-set 的地址

2. Color

讓我們繼續 color 的介紹。在編寫命令程式時,使用顏色突出重要的訊息和區分錯誤,成功和警告是非常有用的。

color 套件提供了一個簡單的方法來為程式添加一些顏色(看到我做了什麼嗎?) 。它使用 ANSII 轉義碼,也支援 Windows!

4. Gen

gen 工具會為您產生程式碼-特別是類型識別碼,它試圖彌補Go 中沒有模板或泛型的缺陷

您可以使用一個特殊的註釋來註釋您的類型,然後gen 會產生您的專案中包含的來源檔案。

5. Gorm

Go 以其簡約的風格而聞名。資料庫程式設計也不例外。 Go 大多數流行的 DB 函式庫都是非常底層的。 Gorm 將物件-關係映射引入以下特性:

  • 關聯(Has One, Has Many, Belongs To, Many To Many, Polymorphism)

  • #回呼(Before/After Create/Save/Update/Delete/Find)

  • 預先載入(預先載入)

  • 事務

  • 複合主鍵

  • SQL 建構器

  • ## 自動遷移

  • 日誌

  • 可擴充, 基於GORM 回呼寫外掛

但這並不能涵蓋所有內容。

如果你之前是使用 Python 開發,請不要指望 SQLAlchemy。

更多的進階用法,你需要去看底層。

6. Goose

使用關聯式資料庫時最重要的任務之一是管理模式。

在一些公司中,修改資料庫模式被認為是一種「可怕」的變更。 goose 包幫助你改變模式,甚至在需要時進行資料遷移。你可以隨便的 

goose up 和 goose down 。不過要注意你的數據,確保它不會遺失或損壞。

Goose 的工作方式是對模式進行版本控制,並使用與每個模式對應的遷移檔案。遷移檔案可以使用 SQL 命令 或 Go 命令。以下是一個新增資料表的 SQL 移轉檔案範例:

8. Ginkgo

#Ginkgo 是一個 BDD (行為驅動程式開發) 測試框架。它可以讓你使用類似於英語的語法編寫測試,並且可以讓不太懂技術的人來檢查測試(與輸出),並驗證它們是否符合業務要求。

有些開發者也喜歡這種風格的測試規格。它與 Go 的內建測試包集成,並經常與 Gomega 結合使用。

9. Etcd

Etcd 是可靠的分散式鍵值儲存。該伺服器在 Go 中實現,並且 Go 客戶端透過 gRPC 與之互動。

它著重在以下方面:

  • 簡單: 良好定義的, 面向使用者的API (gRPC).

  • 安全性: 自動TLS 與可選的客戶端憑證驗證。

  • 快速: 基準測試 10,000 寫入/秒。

  • 可靠: 使用 Raft 合理分配。

10. NSQ

NSQ 是一個很好的分散式佇列。我已經成功地使用它作為一個大型分散式系統的主要組成部分。以下是其一些功能:

  • 支援分散式拓撲且沒有 SPOF。

  • 水平可擴展 (沒有代理,可以無縫地向群集添加更多節點)。

  • 低延遲基於推送的訊息傳遞(效能)。

  • 組合負載平衡和多重播送訊息路由方式。

  • 在串流(高吞吐量)和麵向工作(低吞吐量)的工作負載下均具有 Excel。

  • 主要在記憶體中(超出高水位標記的訊息透明地保留在磁碟上)。

  • 供消費者尋找生產者的執行階段發現服務(nsqlookupd)。

  • 傳輸層安全性 (TLS)。

  • 資料格式偵測。

  • 很少有依賴項(易於部署)和合理,有界的預設配置。

  • 簡單的TCP協定支援客戶端庫中的任何一種語言。

  • 用於統計信息,管理操作和生產者的 HTTP 介面(無需發布客戶端庫)。

  • 與 statsd 集成,實現即時檢測。

  • 健壯的叢集管理介面( nsqadmin )。

推薦教學:《

Go教學

以上是分享十個優秀的 Go 類庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:learnku.com。如有侵權,請聯絡admin@php.cn刪除