发布

Go 技术

关于 Go 语言的技术文章
专栏成员
38
文章
22964
阅读量
11
订阅数
Go 1.24 新特性:JSON omitzero 标签,更清晰且可定制的零值忽略
 方法用于自定义字段的零值判断逻辑。如果你希望修改某个字段的零值的判定方式,可以为该字段实现 
陈明勇
2025-02-26
1332
Go 1.24 新特性:泛型类型别名,让代码变得更灵活、更清晰
 中类型别名的基本概念及其常见的使用场景,随后介绍泛型类型别名的引入背景,最后通过实际的代码示例展示如何利用这一特性进行渐进式重构和其他的使用场景以及作用。
陈明勇
2025-02-26
1623
Go 1.24.0 重磅发布:新特性、新工具,开发者必看!
版本的主要更新,涵盖了语言层面的提升、性能优化、工具链的改进以及标准库中的新增内容。
陈明勇
2025-02-12
8801
Go Mongox:轻松实现 MongoDB 时间字段自动填充
 时,例如执行插入或更新操作,我们需要手动设置这些时间字段的值。然而,每次手动赋值不仅繁琐,还容易导致代码重复。那么,是否可以在程序层面实现自动填充呢?
陈明勇
2025-02-09
34915
利用 Git Hook 自动化 Go 代码审查,提高代码质量
在日常开发中,代码质量的保证一直是团队关注的重点,尤其是随着项目规模的扩大,代码审查变得尤为重要。传统的代码审查虽然能帮助发现问题,但往往需要手动执行多次检查,并且容易受到疏漏的影响。
陈明勇
2025-01-24
1476
Go 开发者必备:Protocol Buffers 入门指南
在现代软件开发中,系统之间的高效通信至关重要,尤其是在微服务架构和分布式系统中。为了高效地传输数据并保证跨语言的兼容性,Protocol Buffers(简称 Protobuf) 应运而生。Protobuf 是 Google 开发的一种轻量、高效的序列化数据格式。它被广泛应用于微服务、RPC 框架以及大数据处理等领域。
陈明勇
2025-01-22
2658
Go Gin 源码分析:上下文复用与 Goroutine 中的潜在坑
如果你看过 Go 语言中 Gin 框架的官方文档,你可能会注意到一条重要的提醒:当在中间件或 handler 中启动新的 Goroutine 时,不能使用原始的上下文,必须使用只读副本。文档中还提供了以下示例代码:
陈明勇
2024-12-23
2823
​函数式编程在 Go 中的优雅实践
函数式编程 (Functional Programming) 是一种注重函数和不可变数据的编程范式,在开发中有助于提高代码的可读性、模块化和可测试性。尽管 Go 语言本身并不是为函数式编程设计的,但它的灵活性和功能足以让我们以优雅的方式实现许多函数式编程理念。
陈明勇
2024-12-20
1261
go optioner:轻松生成函数选项模式代码
之前写过一篇文章 —— [Go开源工具] go-optioner:轻松生成函数选项模式代码,详细讲解了 go optioner 工具的使用方法。不过,随着工具的不断更新,那篇文章中的内容已经和现在的实际用法有些出入了。所以,这次就重新写一篇,把最新的用法分享给大家。
陈明勇
2024-12-13
621
从理论到实践:Go 项目中的整洁架构设计
你维护的 Go 项目代码架构是什么样子的?六边形架构?还是洋葱架构?亦或者是 DDD?无论项目采用的是什么架构,核心目标都应是一致的:使代码能够易于理解、测试和维护。
陈明勇
2024-12-06
3107
Go Mongox 开源库设计分享:简化 MongoDB 开发的最佳实践
在使用 Go 语言操作 MongoDB 时,Go 开发者的首选库通常是由 MongoDB 官方团队推出的 mongo-go-driver。这个库是专为 Go 语言开发者打造的,支持 MongoDB 的主要功能,并与最新版本的 MongoDB 兼容。通过 mongo-go-driver,Go 开发者可以便捷地连接数据库,并且能对集合进行查询、插入、更新、删除的操作。
陈明勇
2024-11-28
4026
Go 语言实现 AES 算法的加解密操作
AES(Advanced Encryption Standard,高级加密标准)是一种对称加密算法,即在加密和解密过程中使用同一个密钥。AES 算法属于分组加密算法,将数据按块处理,每块固定大小。AES 算法的核心思想是在多轮操作中对数据进行替换和置换,从而有效打乱数据,使其无法被破解。
陈明勇
2024-11-15
1590
Go 实现一键跟踪所有订单的物流状态
双十一即将到来,相信大家的购物车里已经塞满了心仪的商品。等待购物狂欢结束后,最期待的事情莫过于看着自己的订单逐一发货。然而,如果你在多个平台购物,查询物流信息可能会显得繁琐,因为需要频繁切换应用查看不同包裹的状态。那么,有没有一种方法可以汇总查询所有购买商品的物流信息呢?借助 Go 语言,我们可以实现一个轻量工具,一键跟踪所有订单的物流状态。
陈明勇
2024-11-08
1040
自动化测试在 Go 开源库中的应用与实践
Go 语言内置的 go test 命令和 testing 库,为自动化测试提供了纯天然的支持。最近,因为 mongo-driver 官方库已发布 v2 版本,我需要为我开源的 go-mongox 库进行兼容升级。经过几个小时的开发和调试,升级工作顺利完成,其中自动化测试在整个流程起到关键作用,大大提高了工作效率。
陈明勇
2024-11-01
1490
Go 语言结合 Docker 进行集成测试
在 Go 语言开发中,结合 Docker 进行集成测试是一种高效的方法,它能够在隔离的容器环境中运行服务,确保测试结果的一致性。这种方式特别适用于需要依赖外部服务(如数据库、缓存系统、外部 API 等)的测试场景。结合 Docker 进行集成测试的方式主要有两种:通过 docker-compose 配置测试环境,以及 使用 dockertest 库管理容器。本文将重点介绍如何在 Go 语言中使用 dockertest 进行集成测试。
陈明勇
2024-10-25
1660
使用 docker 轻松部署你的 Go 项目
如果你是一名 Go 开发者,你一定知道用 Go 写代码是一件多爽的事,高效而简洁。那么如果我告诉你,部署 Go 项目同样也可以这么轻松愉快呢?这就是 Docker 的魅力所在。
陈明勇
2024-10-24
1.3K0
使用 Go 开发一个简单的 YAML 文件翻译小工具
有时我们需要翻译 YAML 文件的内容,但目前缺乏一个专门针对 YAML 的便捷翻译工具。为此,我们可以自己开发一个定制化的工具。本文将介绍如何使用 Go 语言开发一个简单的 YAML 文件翻译工具。
陈明勇
2024-10-18
2150
深入掌握 Go 单元测试:从基础到进阶的完整指南
在软件开发中,单元测试是一项不可忽视的环节。它不仅帮助开发者在编码的早期阶段发现并解决潜在问题,还能确保代码的可靠性、可维护性和整体质量,这对于提高开发效率、减少后期维护成本非常重要。
陈明勇
2024-09-20
3210
Go 1.23 迭代器,统一标准,改善 Go 生态系统
Go 1.23 版本在北京时间 2024 年 8 月 14 日凌晨 1:03 发布。该版本带来了多项重大更新,具体内容可以参考我之前的文章:Go 1.23 版本发布啦,这些重大更新你一定要知道!。本文将重点介绍 iterator 标准迭代器。
陈明勇
2024-09-13
8940
Go 1.23 新特性:slices 和 sync 等核心库的微调,大幅提升开发体验
Go 1.23 版本在北京时间 2024 年 8 月 14 日凌晨 1:03 发布。该版本带来了多项重大更新,具体内容可以参考我之前的文章:Go 1.23 版本发布啦,这些重大更新你一定要知道!。本文将重点介绍 slices、sync 等核心库的小改进。
陈明勇
2024-08-30
1.4K0
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档