Go 部分更新 API 入门:区分未提交、空值和清空字段
Go 普通结构体很难直接区分字段未提交、提交 null 和提交空值。本文用自定义 Optional 类型和 UnmarshalJSON 实现三态区分,讲解 PATCH 接口的安全更新策略。
tag
Go 普通结构体很难直接区分字段未提交、提交 null 和提交空值。本文用自定义 Optional 类型和 UnmarshalJSON 实现三态区分,讲解 PATCH 接口的安全更新策略。
面向 Go 初学者介绍 Go 1.23 range over func 的基本写法、适用场景、与切片返回的取舍,以及如何避免过度设计。
Go GC 调优实战:从理论到实践 你有没有遇到过这样的场景:你的 Go 服务跑着跑着,CPU 突然飙高,响应延迟抖动明显,过了几十毫秒又恢复正常?恭喜你,你遇到了 GC pause。垃圾回收(Garbage Collection,简称 GC)是 Go 语言的核心特性之一。
Go 语言优秀资源整理,为项目落地加速🏃 在 GitHub 仓库 github.com/shockerli/go-awesome 上稳定更新,觉得不错请点个 Star ❤️ 如转载分享,请保留出处,谢谢 😆
用批量处理任务讲 Go channel 流水线的基础写法,包括生产者、工作者、结果汇总、context 取消和 channel 关闭规则,以及多级流水线、背压控制和超时处理。
全面介绍 Go 语言中的消息队列实战,包括 Kafka 生产者与消费者、Kafka Streams、RabbitMQ 集成、AMQP 协议、消息模式、错误处理和死信队列
讲 Go 程序如何通过 ldflags 注入版本号、Git commit 和构建时间,并在 CLI 或 HTTP 健康检查中展示。
深入探索 Go 1.24 的重要特性:weak 指针改进、PGO 优化、net/http 增强、crypto 改进、性能提升、工具链更新与最佳实践
邮件模板听起来像前端工作,但后端经常要负责生成验证码、邀请链接、账单通知和任务提醒。很多初学项目一开始直接用 拼 HTML,写到第二封邮件时就会变得难维护。Go 的 很适合渲染 HTML 邮件,因为它会自动转义用户数据。
找回密码看起来是一个普通功能:用户输入邮箱,系统发送链接,用户点开后设置新密码。真正实现时,最关键的是 token。它必须足够随机,不能长期有效,最好一次性使用,数据库里也不应该明文保存。本文用 Go 写一个入门版密码重置 token 流程。
从一次查询接口出发,讲 database/sql 里 context 的使用、QueryContext、Scan、Rows 关闭、超时传播和常见连接泄漏问题。
深入探讨 Go 微服务中的服务发现与注册机制,包括 Consul、etcd、Nacos 集成,健康检查、负载均衡、熔断器和服务网格基础
CSV 导入是很多后台系统都会遇到的功能。用户从表格软件导出一份文件,上传到系统里批量创建用户、商品或订单。Go 标准库的 能完成大部分基础工作,但真正难的是边界:表头不对怎么办,某一行邮箱为空怎么办,转换失败怎么告诉用户,文件很大时能不能逐行处理。
深入讲解如何使用 Go 和 gqlgen 构建 GraphQL API,包括 schema 定义、resolver 实现、mutation、subscription、认证、分页和性能优化
临时文件经常出现在后端任务里:下载一个文件后解析,生成报表后上传,图片转换时落盘,或者调用某个只接受文件路径的外部工具。很多初学者会手写固定路径,这在并发和安全上都不稳。Go 标准库提供了 os.CreateTemp 和 os.MkdirTemp,应该优先使用它们。
写后端服务时,外部调用失败是常态。网络会抖,依赖会慢,网关会返回 502,数据库也可能短暂不可用。初学者最容易写出两种极端代码:一种完全不重试,偶发错误直接暴露给用户;另一种无脑重试很多次,把一个小抖动放大成更大的压力。正确做法不是“永远重试”或“永不重试”,而是把超时、退避和幂等性一起考虑。
Go 标准库写 JSON API 并不难,难的是写到第十个接口时还能保持清楚。很多初学项目一开始把所有逻辑塞进 handler:解析 JSON、校验字段、查数据库、拼响应、写错误。前两个接口还行,接口多了以后,错误格式不统一,测试也不好写。
深入回顾 Go 1.23 的重要特性:range over function 迭代器模式、unique 包、time 改进、slices/maps 新增方法、性能优化与实际应用案例
全面介绍使用 cobra 框架构建现代命令行工具,包括命令结构、标志参数、子命令、viper 配置集成、Shell 自动补全、彩色输出和交互式提示
从一个小型页面开始讲 Go html/template 的自动转义、安全边界、模板函数和常见误用,适合刚开始写 Go Web 页面的读者。