Go 日常开发常备第三方库和工具(下)

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 重点和大家分享下我们日常开发中所使用到的一些第三方库与工具。 这里我主要将这些库分为两类: 业务开发 基础工具开发

BloomRPC ⭐️⭐️⭐️⭐️


github.com/uw-labs/blo… 一个 gRPC 可视化工具,比起自己写 gRPC 客户端的代码那确实是要简单许多。


网络异常,图片无法展示
|


但也有些小问题,比如精度。如果是 int64 超过了 2^56 服务端拿到的值会发生错误,这点目前还未解决。


redis ⭐️⭐️⭐️⭐️


github.com/go-redis/re… Redis 客户端,没有太多可说的;发展了许多年,该有的的功能都有了。


elastic ⭐️⭐️⭐️⭐️


github.com/olivere/ela… 这也是一个非常成熟的 elasticsearch 库。


resty ⭐️⭐️⭐️⭐️


github.com/go-resty/re…  一个 http client, 使用起来非常简单:


// Create a Resty Client
client := resty.New()
resp, err := client.R().
    EnableTrace().
    Get("https://httpbin.org/get")


有点 Python requests 包那味了。


pulsar-client-go ⭐️⭐️⭐️


Pulsar 官方出品的 go 语言客户端,相对于 Java 来说其他语言的客户端几乎都是后娘养的;功能会比较少,同时更新也没那么积极;但却没得选。


go-grpc-middleware ⭐️⭐️⭐️


github.com/grpc-ecosys… 官方提供的 gRPC 中间件,可以自己实现内部的一些鉴权、元数据、日志等功能。


go-pilosa ⭐️⭐️⭐️


github.com/pilosa/go-p… 是一个位图数据库的客户端,位图数据库的场景应用比较有限,通常是有标签需求时才会用到;比如求 N 个标签的交并补集;数据有一定规模后运营一定会提相关需求;可以备着以备不时之需。


pb ⭐️⭐️⭐️


github.com/cheggaaa/pb 一个命令行工具进度条,编写命令行工具时使用它交互会更优雅。


网络异常,图片无法展示
|


总结


最后我汇总了一个表格,方便查看:


名称 类型 功能 星级
Gin 业务开发 HTTP 框架 ⭐️⭐️⭐️⭐️⭐️
GORM 业务开发 ORM 框架 ⭐️⭐️⭐️⭐️⭐️
errors 业务开发 异常处理库 ⭐️⭐️⭐️⭐️⭐️
zorolog 业务开发 日志库 ⭐️⭐️⭐️⭐️⭐️
excelize 业务开发 Excel相关需求 ⭐️⭐️⭐️⭐️⭐️
now 业务开发 时间处理 ⭐️⭐️⭐️⭐️️
Decimal 业务开发 精度处理 ⭐️⭐️⭐️⭐️️
configor 业务开发 配置文件 ⭐️⭐️⭐️⭐️️
go-cache 业务开发 本地缓存 ⭐️⭐️⭐️
copier 业务开发 数据复制 ⭐️⭐️⭐️️️
env 业务开发 环境变量 ⭐️⭐️⭐️️️
user_agent 业务开发 读取 user-agent ⭐️⭐️⭐️️️
phonenumbers 业务开发 手机号码验证 ⭐️⭐️⭐️️️
gomonkey 基础工具 mock工具 ⭐️⭐️⭐️⭐️⭐
goconvey 基础工具 单测覆盖率 ⭐️⭐️⭐️⭐️⭐
dig 基础工具 依赖注入 ⭐️⭐️⭐️⭐️⭐
cobra 基础工具 命令行工具 ⭐️⭐️⭐️⭐
cli 基础工具 命令行工具 ⭐️⭐️⭐️⭐
BloomRPC 基础工具 gRPC 调试客户端 ⭐️⭐️⭐️⭐
redis 基础工具 Redis 客户端 ⭐️⭐️⭐️⭐
elastic 基础工具 elasticsearch 客户端 ⭐️⭐️⭐️⭐
resty 基础工具 http 客户端 ⭐️⭐️⭐️⭐
pulsar-client-go 基础工具 Pulsar 客户端 ⭐️⭐️⭐️
go-grpc-middleware 基础工具 gRPC 中间件 ⭐️⭐️⭐
go-pilosa 基础工具 pilosa 客户端 ⭐️⭐️⭐️
pb 基础工具 命令行工具进度条 ⭐️⭐️⭐️


星级评分的规则主要是看实际使用的频次。


最后夹带一点私货(其实也谈不上) 文中提到了我们内部有基于以上库整合了一个业务开发框架;也基于该框架上线了大大小小10几个项目,改进空间依然不少,目前还是在快速迭代中。


大概的用法,入口 main.go:


网络异常,图片无法展示
|


网络异常,图片无法展示
|
最后截取我在内部的分享就概括了整体的思想 --引用自公司一司姓同事


也许我们内部经过多次迭代,觉得有能力开放出来给社区带来一些帮助时也会尝试开源;现阶段就不嫌丑了。


这些库都是我们日常开发最常用到的


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
1月前
|
测试技术 API 开发者
【Docker项目实战】在Docker环境下部署go-file文件分享工具
【2月更文挑战第15天】在Docker环境下部署go-file文件分享工具
67 1
|
2月前
|
存储 Go C语言
如何用Go开发eBPF程序
【2月更文挑战第7天】
|
2月前
|
开发框架 安全 中间件
Go语言开发小技巧&易错点100例(十二)
Go语言开发小技巧&易错点100例(十二)
29 1
|
6天前
|
前端开发 Java Go
开发语言详解(python、java、Go(Golong)。。。。)
开发语言详解(python、java、Go(Golong)。。。。)
|
1月前
|
大数据 Java Go
Go语言在大数据处理中的核心技术与工具
【2月更文挑战第22天】本文深入探讨了Go语言在大数据处理领域的核心技术与工具。通过分析Go语言的并发编程模型、内存管理、标准库以及第三方工具库等方面,展现了其在大数据处理中的优势和实际应用。同时,本文也讨论了如何使用这些技术与工具构建高效、稳定的大数据处理系统,为开发者提供了有价值的参考。
|
1月前
|
JSON Go API
Go语言网络编程:HTTP客户端开发实战
【2月更文挑战第12天】本文将深入探讨使用Go语言开发HTTP客户端的技术细节,包括发送GET和POST请求、处理响应、错误处理、设置请求头、使用Cookie等方面。通过实例演示和代码解析,帮助读者掌握构建高效、可靠的HTTP客户端的关键技术。
|
2月前
|
设计模式 测试技术 Go
Go 项目必备:Wire 依赖注入工具的深度解析与实战应用
在现代软件开发中,依赖注入(Dependency Injection,简称 DI)已经成为一种广泛采用的设计模式。它的核心思想是通过外部定义的方式,将组件之间的依赖关系解耦,从而提高代码的可维护性、可扩展性和可测试性。然而,随着项目规模的增长,手动管理复杂的依赖关系变得日益困难。这时,依赖注入代码生成工具就显得尤为重要。在众多工具中,Wire 以其简洁、强大和易用性脱颖而出,成为 Go 语言项目中的宠儿。本文将带你深入了解 Wire 的安装、基本使用、核心概念以及高级用法,并通过一个实际的 web 博客项目示例,展示如何利用 Wire 简化依赖注入的实现。准备好了吗?让我们开始这场代码解耦的奇
|
2月前
|
Go
Go语言开发小技巧&易错点100例(十一)
Go语言开发小技巧&易错点100例(十一)
16 0
|
2月前
|
存储 Java Go
Go语言开发小技巧&易错点100例(十)
Go语言开发小技巧&易错点100例(十)
19 0
|
2月前
|
Go 开发者
Go语言开发小技巧&易错点100例(九)
Go语言开发小技巧&易错点100例(九)
15 0