Go语言技术文章
-
用 Go Modules 的 replace 将主模块临时指向本地依赖,联调期间确认实际解析路径,提交前用 go mod edit -dropreplace 移除替换并检查模块文件差异。285 收藏 -
从大文件生成器管道的三个常见故障入手,讲清同步按需拉取的背压边界、提前停止时的关闭级联,以及保留行号和原始原因的异常传播写法。126 收藏 -
通过一次支付处理中状态被误判为失败的复盘,演示如何用 Java sealed interface、record 与模式匹配 switch 固定结果集合、获得编译期穷尽检查,并设计同模块扩展边界。270 收藏 -
go mod tidy 加入看似未使用的模块,通常是因为它会扫描测试、工具、构建标签和跨平台源码。本文用依赖路径、模块图和可回滚命令说明如何判断该模块是否应该保留。400 收藏 -
通过 money 模块与 order 服务的小项目,演示如何拆分 Go 内部模块、用 go.work 本地联调、为子目录模块创建语义化版本标签,并用 v1 兼容规则与 /v2 路径维护清晰依赖边界。492 收藏 -
用 PHP Attribute 为控制器方法声明路由元数据,再通过 Reflection 生成一次性路由表,覆盖读取、缓存、HTTP 方法区分和重复路由冲突处理。413 收藏 -
性质测试适合输入域宽、确定性强且能写出不变量的函数;示例断言更适合少量关键业务边界、精确输出和外部状态行为。本文结合 Go 原生 fuzzing,给出选择矩阵、幂等性示例、反例与混合测试清单。341 收藏 -
JDK 25 成为长期支持版本后,虚拟线程已从新 API 观察期进入生产采用期。文章结合 JDK 21 定稿、JDK 24 同步锁改进和 JDK 25 官方指南,说明适用负载、线程模型、限流、可观测性与灰度迁移边界。156 收藏 -
Go fuzz 发现失败输入后,真正应该提交到仓库的是 testdata/fuzz/FuzzXxx 下的 seed corpus。本文用一个可复用的流程说明如何重放、修复并让普通 go test 长期回归,同时区分 GOCACHE/fuzz 中的生成缓存。174 收藏 -
长文档问答不能只返回文件名。本文给出文档版本、章节锚点、内容块、引用卡片和答案断言的完整映射方法,并补充覆盖率、锚点解析、版本一致性、低证据拒答与回滚检查。257 收藏 -
解释 Go Fuzz 失败输入为什么通常应保留到 testdata/fuzz,并区分真实实现缺陷、错误断言、非确定性、敏感数据和重复语料的不同处理方式。183 收藏 -
以逗号分隔标签的规范化函数为例,用 Go Fuzz 检查编解码往返、幂等、UTF-8、排序与去重性质,并给出种子语料、运行预算和失败输入回归方法。226 收藏 -
用 Redis Functions 与 Sorted Set 实现原子滑动窗口限流,讲清函数库部署、FCALL 调用、v1/v2 并行版本、配置切换回滚,以及唯一请求标识、时钟和性能边界。468 收藏 -
Go 模糊测试只覆盖少量路径时,先拆分种子输入边界,再检查 fuzz target 的可达性、确定性和运行指标,逐步提升语料质量。313 收藏 -
通过部门成绩同分示例比较 MySQL ROW_NUMBER 与 DENSE_RANK:前者适合每组固定取 N 行,后者适合保留前 N 个并列档位,并讲清稳定排序、CTE 外层筛选和 NULL 边界。112 收藏