首页
学习
活动
专区
工具
TVP
发布

Go 技术

关于 Go 语言的技术文章
专栏成员
26
文章
13784
阅读量
11
订阅数
Go 实现一键跟踪所有订单的物流状态
双十一即将到来,相信大家的购物车里已经塞满了心仪的商品。等待购物狂欢结束后,最期待的事情莫过于看着自己的订单逐一发货。然而,如果你在多个平台购物,查询物流信息可能会显得繁琐,因为需要频繁切换应用查看不同包裹的状态。那么,有没有一种方法可以汇总查询所有购买商品的物流信息呢?借助 Go 语言,我们可以实现一个轻量工具,一键跟踪所有订单的物流状态。
陈明勇
2024-11-08
180
自动化测试在 Go 开源库中的应用与实践
Go 语言内置的 go test 命令和 testing 库,为自动化测试提供了纯天然的支持。最近,因为 mongo-driver 官方库已发布 v2 版本,我需要为我开源的 go-mongox 库进行兼容升级。经过几个小时的开发和调试,升级工作顺利完成,其中自动化测试在整个流程起到关键作用,大大提高了工作效率。
陈明勇
2024-11-01
1260
Go 语言结合 Docker 进行集成测试
在 Go 语言开发中,结合 Docker 进行集成测试是一种高效的方法,它能够在隔离的容器环境中运行服务,确保测试结果的一致性。这种方式特别适用于需要依赖外部服务(如数据库、缓存系统、外部 API 等)的测试场景。结合 Docker 进行集成测试的方式主要有两种:通过 docker-compose 配置测试环境,以及 使用 dockertest 库管理容器。本文将重点介绍如何在 Go 语言中使用 dockertest 进行集成测试。
陈明勇
2024-10-25
1490
使用 docker 轻松部署你的 Go 项目
如果你是一名 Go 开发者,你一定知道用 Go 写代码是一件多爽的事,高效而简洁。那么如果我告诉你,部署 Go 项目同样也可以这么轻松愉快呢?这就是 Docker 的魅力所在。
陈明勇
2024-10-24
3830
使用 Go 开发一个简单的 YAML 文件翻译小工具
有时我们需要翻译 YAML 文件的内容,但目前缺乏一个专门针对 YAML 的便捷翻译工具。为此,我们可以自己开发一个定制化的工具。本文将介绍如何使用 Go 语言开发一个简单的 YAML 文件翻译工具。
陈明勇
2024-10-18
1790
深入掌握 Go 单元测试:从基础到进阶的完整指南
在软件开发中,单元测试是一项不可忽视的环节。它不仅帮助开发者在编码的早期阶段发现并解决潜在问题,还能确保代码的可靠性、可维护性和整体质量,这对于提高开发效率、减少后期维护成本非常重要。
陈明勇
2024-09-20
2640
Go 1.23 迭代器,统一标准,改善 Go 生态系统
Go 1.23 版本在北京时间 2024 年 8 月 14 日凌晨 1:03 发布。该版本带来了多项重大更新,具体内容可以参考我之前的文章:Go 1.23 版本发布啦,这些重大更新你一定要知道!。本文将重点介绍 iterator 标准迭代器。
陈明勇
2024-09-13
4570
Go 1.23 新特性:slices 和 sync 等核心库的微调,大幅提升开发体验
Go 1.23 版本在北京时间 2024 年 8 月 14 日凌晨 1:03 发布。该版本带来了多项重大更新,具体内容可以参考我之前的文章:Go 1.23 版本发布啦,这些重大更新你一定要知道!。本文将重点介绍 slices、sync 等核心库的小改进。
陈明勇
2024-08-30
9330
Go 1.23 新特性:Timer 和 Ticker 的重要优化
Go 1.23 版本在北京时间 2024 年 8 月 14 日凌晨 1:03 发布。该版本带来了多项重大更新,具体内容可以参考我之前的文章:Go 1.23 版本发布啦,这些重大更新你一定要知道!。本文将重点介绍其中关于定时器(Timer 和 Ticker)的优化。
陈明勇
2024-08-22
4062
Go 1.23 版本发布啦,这些重大更新你一定要知道!
在 Go 1.22 版本发布 6 个月之后,Go 1.23 于北京时间 2024 年 8 月 14 日凌晨 1:03 正式发布。此次更新的主要变化集中在工具链、运行时和库的实现上。让我们一起来看看 Go 1.23 带来了哪些新变化吧!
陈明勇
2024-08-14
2.6K0
利用 Redis bitmap 实现高效的用户签到统计功能
在现代应用程序中,用户签到是一个常见的功能。我们通常使用 MySQL 数据库来存储用户的签到记录。然而,随着用户数量的增加,数据库中的记录将会随时间和用户量线性增长,这不仅增加了存储的负担,而且可能影响查询效率。在追求更高存储效率和查询性能的场景下,MySQL 可能不再是最佳选择。
陈明勇
2024-07-12
5412
Go 在结构体中定义下划线(_)字段原来还有这个特殊用途?
在 Go 语言中,我们经常会看到下划线(_)的使用,例如将 _ 作为占位符,用于忽略不需要的变量,或者导入但不使用的包(即 Import for side-effects),以及忽略类型转换中的变量等等。然而,大多数人可能没有见过在结构体中使用下划线(_)的情况,例如定义一个名为 _ 的结构体字段。那么,定义这样一个字段的用途是什么呢?本文将为你揭示这个疑惑。
陈明勇
2024-06-24
1670
轻松调用腾讯元器 API:我用 Go 语言封装了一个库
腾讯元器 是腾讯混元大模型团队推出的智能体创作工具,方便您通过添加提示词设定、插件、知识库等功能捏出自己喜欢的智能体。除了在官网直接与智能体交互以外,还支持通过 API 方式与智能体进行交互。
陈明勇
2024-06-14
3702
Go 语言 mongox 库:简化操作、安全、高效、可扩展、BSON 构建
在 Go 语言里使用 MongoDB 官方提供的 mongo-go-driver 库进行集合操作时,你是否感到结构体与 MongoDB 集合之间的映射,以及构建 BSON 数据这些操作极其繁琐?特别是在构建 BSON 数据时,各种字段、逗号和括号的排列组合是否让你觉得仿佛在进行一场复杂的拼图游戏?
陈明勇
2024-06-08
2084
Go 语言揭秘:接口类型是 nil 但不等于 nil?
在使用 Go 语言编码的过程中,我们可能会遇到一种情况:当使用接口类型参数(如 any 或 interface{})接收其他参数时,给定的参数值明明是 nil,但是使用不等式判断 x == nil 却不成立,这是为什么?本文将会带你揭秘。
陈明勇
2024-05-30
2980
Go 事件驱动编程:实现一个简单的事件总线
在当今微服务和分布式系统盛行的背景下,事件驱动架构(Event-Driven Architecture,EDA)扮演着一个至关重要的角色,此架构的设计使得服务间可以通过事件进行同步或异步通信,替代了传统的直接接口调用。基于事件的交互方式,促进了服务之间的松耦合,提高系统的可扩展性。
陈明勇
2024-05-13
6230
深入浅出 Go 并发协同等待利器:sync.WaitGroup
本文接下来要介绍的内容与 Go 语言中的 sync.WaitGroup 并发原语有关,它用于等待一组并发操作完成。如果你面临的场景中,需要将一个复杂任务划分为多个子任务,并等待这些子任务执行完毕后(无先后顺序的限制)才能继续后续操作,那么,sync.WaitGroup 是你解决这类场景问题的理想选择。
陈明勇
2024-04-29
5360
从 0 到 1 创建、测试并发布属于自己的 Go 开源库
在日常开发中,我们经常使用由组织或个人开发和维护的第三方开源库,这些库大大提高了我们的开发效率,让我们能够专注于实现业务逻辑而不是重复造轮子。如果你对提高代码复用感兴趣,并希望将自己封装的高质量代码发布为一个开源库,那么这篇文章正是为你准备的。
陈明勇
2024-04-22
2490
Go singleflight 源码剖析
前面的一篇文章 Go singleflight:防缓存击穿利器 详细介绍 singleflight 包的使用,展示如何利用它来避免缓存击穿。而本篇文章,我们来剖析 singleflight 包的源码实现和工作原理,探索单飞的奥秘。
陈明勇
2024-04-16
2520
Go singleflight:防缓存击穿利器
在构建高性能的服务时,缓存是优化数据库压力和提高响应速度的关键技术。使用缓存也会带来一些问题,其中就包括 缓存击穿,它不仅会导致数据库压力剧增,引起数据库性能的下降,严重时甚至会击垮数据库,导致数据库不可用。
陈明勇
2024-04-14
4072
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档