暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

每个开发人员都应该知道的 5 个 Golang 模块/包

云原生CTO 2021-11-11
1390

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]

参考资料

[1]

参考: https://medium.com/golangd/5-golang-modules-packages-that-every-developer-should-know-c945f40ea173


文章转载自云原生CTO,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论