关注微信公众号《云原生CTO》更多云原生干货等你来探索
专注于 云原生技术
分享
提供优质 云原生开发
视频技术培训
面试技巧
,及技术疑难问题 解答
云原生CTO
,资深Go
语言工程师课程体系下月即将开课,特邀资深Go
语言专家,打造一场高薪Go
技能线上课程,扫码立即了解最新资讯🔎

云原生技术分享不仅仅局限于Go
、Rust
、Python
、Istio
、containerd
、CoreDNS
、Envoy
、etcd
、Fluentd
、Harbor
、Helm
、Jaeger
、Kubernetes
、Open Policy Agent
、Prometheus
、Rook
、TiKV
、TUF
、Vitess
、Argo
、Buildpacks
、CloudEvents
、CNI
、Contour
、Cortex
、CRI-O
、Falco
、Flux
、gRPC
、KubeEdge
、Linkerd
、NATS
、Notary
、OpenTracing
、Operator Framework
、SPIFFE
、SPIRE
和 Thanos
等


每个开发人员都应该知道的 5 个 Golang 模块/包
Go
是 一种快速、易于学习且方便的新型编程语言 Google
开发的 。
Golang
带来的最令人印象深刻的事情之一是它的文档。它就像 Laravel
,非常广泛,并且易于使用。在本文中,我将向您介绍每个 Go
开发人员都应该知道的5
个 Golang
包
Goose — 数据库迁移
Goose
是Golang
中最好的数据库迁移工具。有了这个包,改变你的数据库模式变得非常容易。

安装Goose
运行以下命令
$ go get github.com/pressly/goose
您也可以决定使用轻量级版本:
$ go build -tags='no_postgres no_mysql no_sqlite3' -i -o goose ./cmd/goose
使用Goose
要使用 Goose
,您可以通过运行以下命令来创建新的 SQL
迁移:
$ goose create new_column sql
有关更深入的文档,我建议您访问他们的 官方页面
https://github.com/pressly/goose
Go Kit — 微服务
Go Kit
是一个处理微服务的便捷包。
https://github.com/go-kit/kit

安装 Go Kit
要安装 Go Kit
,请在终端中运行以下命令:
$ go get github.com/go-kit/kit
使用 Go Kit
创建一个新项目并为自己创建一个新模型。
package article
import (
"time"
)
type Article struct {
ID string `json:"id"`
Username string `json:"username"`
Content string `json:"content"`
Text string `json:"title"`
CreatedOn time.Time `json:"created_on"`
}
您可以在服务中使用此模型:
package article
import (
"context"
)
type TodoService interface {
GetAllForUser(ctx context.Context, username string) ([]Article, error)
GetByID(ctx context.Context, id string) (Article, error)
Add(ctx context.Context, article Article) (Article, error)
Update(ctx context.Context, id string, article Article) error
Delete(ctx context.Context, id string) error
}
Authboss — 模块化身份验证。
Authboss
是一个有益的模块化身份验证包。

安装 Authboss
您可以通过运行以下命令来安装` Authboss:``
$ go get -u github.com/volatiletech/authboss/v3
使用 Authboss
Authboss
是一个令人印象深刻的模块,因此如果您想很好地了解如何使用它,我建议您查看他们的 文档
https://github.com/volatiletech/authboss
Gingko — 测试框架。
使用 Gingko
,您可以轻松地为您的 Golang
项目编写测试,并且使用此包,您甚至可以让非技术人员也能轻松阅读。
https://onsi.github.io/ginkgo/

安装Gingko
要安装此软件包,请运行以下命令:
$ go get github.com/onsi/ginkgo/ginkgo
使用Gingko
要使用 Gingko
,您需要引导一个新的测试环境:
$ ginkgo bootstrap
如需进一步解释,请查看他们的 优秀文档 。
https://onsi.github.io/ginkgo/
NSQ - 消息平台
NSQ
是 “实时分布式消息传递平台”。当您正在寻找可以扩展的系统时,这非常有用。
https://nsq.io/

安装 NSQ
要安装 NSQ
,我们使用以下命令:
$ git clone https://github.com/nsqio/nsq
$ cd nsq
$ make
使用 NSQ
由于 NSQ
很难立即理解,因此您肯定需要查看 他们的文档。
https://nsq.io/overview/quick_start.html
如您所见,对于这种相对较新的编程语言:Go
,有很多方便的包。我希望我给了你一些新的见解。
5.3 参考资料
参考[1]
参考资料
参考: https://medium.com/golangd/5-golang-modules-packages-that-every-developer-should-know-c945f40ea173




