1. Golang-Set
創(chuàng)新互聯(lián)公司是工信部頒發(fā)資質(zhì)IDC服務(wù)器商,為用戶提供優(yōu)質(zhì)的電信機(jī)房托管服務(wù)Go 有數(shù)組,切片,映射,但是它沒(méi)有集合。您可以使用布爾映射來(lái)模擬一個(gè)集合,但是最好擁有一個(gè)具有正確操作和語(yǔ)義的實(shí)際數(shù)據(jù)類型。
這是 golang-set 的地址
2. Color
讓我們繼續(xù) color 的介紹。在編寫命令程序時(shí),使用顏色突出重要的消息和區(qū)分錯(cuò)誤,成功和警告是非常有用的。
color 包提供了一種簡(jiǎn)單的方法來(lái)為程序添加一些顏色(看到我做了什么嗎?) 。它使用 ANSII 轉(zhuǎn)義碼,也支持 Windows!
4. Gen
gen 工具會(huì)為您生成代碼——特別是類型識(shí)別代碼,它試圖彌補(bǔ) Go 中沒(méi)有模板或泛型的缺陷
您可以使用一個(gè)特殊的注釋注釋您的類型,然后 gen 會(huì)生成您的項(xiàng)目中包含的源文件。
5. Gorm
Go 以其簡(jiǎn)約的風(fēng)格而聞名。數(shù)據(jù)庫(kù)編程也不例外。Go 大多數(shù)流行的 DB 庫(kù)都是非常底層的。Gorm 將對(duì)象——關(guān)系映射引入到以下特性中:
關(guān)聯(lián) (Has One, Has Many, Belongs To, Many To Many, Polymorphism)
回調(diào) (Before/After Create/Save/Update/Delete/Find)
預(yù)加載 (預(yù)先加載)
事務(wù)
復(fù)合主鍵
SQL 構(gòu)建器
自動(dòng)遷移
日志
可擴(kuò)展, 基于 GORM 回調(diào)編寫插件
但是這并不能涵蓋所有內(nèi)容。
如果你之前是使用 Python 開(kāi)發(fā),請(qǐng)不要指望 SQLAlchemy。
更多的高級(jí)用法,你需要去看底層。
6. Goose
使用關(guān)系數(shù)據(jù)庫(kù)時(shí)最重要的任務(wù)之一是管理模式。
在一些公司中,修改數(shù)據(jù)庫(kù)模式被認(rèn)為是一種「可怕」的更改。goose 包幫助你更改模式,甚至在需要時(shí)進(jìn)行數(shù)據(jù)遷移。 你可以隨意的 goose up
和 goose down
。不過(guò)要注意你的數(shù)據(jù),確保它不會(huì)丟失或損壞。
Goose 的工作方式是對(duì)模式進(jìn)行版本控制,并使用與每個(gè)模式對(duì)應(yīng)的遷移文件。遷移文件可以使用 SQL 命令 或 Go 命令。下面是一個(gè)添加新表的 SQL 遷移文件示例:
8. Ginkgo
Ginkgo 是一個(gè) BDD (行為驅(qū)動(dòng)開(kāi)發(fā)) 測(cè)試框架。它可以讓你使用類似于英語(yǔ)的語(yǔ)法編寫測(cè)試,并可以讓不太懂技術(shù)的人來(lái)檢查測(cè)試(與輸出),并驗(yàn)證它們是否符合業(yè)務(wù)要求。
一些開(kāi)發(fā)者也喜歡這種風(fēng)格的測(cè)試規(guī)范。它與 Go 的內(nèi)置測(cè)試包集成,并經(jīng)常與 Gomega 結(jié)合使用。
9. Etcd
Etcd 是可靠的分布式鍵值存儲(chǔ)。該服務(wù)器在 Go 中實(shí)現(xiàn),并且 Go 客戶端通過(guò) gRPC 與之交互。
它著重在以下方面:
簡(jiǎn)單: 良好定義的, 面向用戶的 API (gRPC).
安全: 自動(dòng) TLS 與可選的客戶端證書身份驗(yàn)證。
快速: 基準(zhǔn)測(cè)試 10,000 寫入/秒。
可靠: 使用 Raft 合理分配。
10. NSQ
NSQ 是一個(gè)很好的分布式隊(duì)列。我已經(jīng)成功地使用它作為一個(gè)大型分布式系統(tǒng)的主要組成部分。以下是其一些功能:
支持分布式拓?fù)洳⑶覜](méi)有 SPOF。
水平可擴(kuò)展 (沒(méi)有代理,可以無(wú)縫地向群集添加更多節(jié)點(diǎn))。
低延遲基于推送的消息傳遞(性能)。
組合負(fù)載均衡和多播消息路由方式。
在流(高吞吐量)和面向工作(低吞吐量)的工作負(fù)載下均具有 Excel。
主要在內(nèi)存中(超出高水位標(biāo)記的消息透明地保留在磁盤上)。
供消費(fèi)者查找生產(chǎn)者的運(yùn)行時(shí)發(fā)現(xiàn)服務(wù)(nsqlookupd)。
傳輸層安全 (TLS)。
數(shù)據(jù)格式檢測(cè)。
很少有依賴項(xiàng)(易于部署)和合理,有界的默認(rèn)配置。
簡(jiǎn)單的TCP協(xié)議支持客戶端庫(kù)中的任何一種語(yǔ)言。
用于統(tǒng)計(jì)信息,管理操作和生產(chǎn)者的 HTTP 接口(無(wú)需發(fā)布客戶端庫(kù))。
與 statsd 集成,實(shí)現(xiàn)實(shí)時(shí)檢測(cè)。
健壯的集群管理接口( nsqadmin )。
以上就是分享十個(gè)優(yōu)秀的 Go 類庫(kù)的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!