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教程》
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!