Go语言技术文章
-
性质测试适合输入域宽、确定性强且能写出不变量的函数;示例断言更适合少量关键业务边界、精确输出和外部状态行为。本文结合 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 收藏 -
用一个带版本、标志和长度字段的 Go 二进制帧解析器,演示如何设计 f.Add 种子语料,并在 FuzzParseFrame 中断言长度一致、保留位合法、编解码回环和内存独立性。460 收藏 -
提供两张原创9:16粗纤维手工纸日落手机壁纸,包含暖橙锁屏主图与靛蓝暮色变体,并附完整中英文提示词、下载按钮、换色变量和屏幕裁切建议。449 收藏 -
Go 测试的偶发失败不能只靠重复运行排查。本文区分测试数据种子与 go test 的 -shuffle 种子,给出局部 rand.Rand、顺序记录、CI 复现命令和诊断清单,并说明 map 迭代、并发调度与外部状态为何不能靠一个种子完全复现。195 收藏 -
光伏运维项目交接不能只交一份设备台账。本文按项目资料、设备身份、安装调试、运行维护和缺项闭环整理档案清单,帮助双方完成可追溯的现场交接。360 收藏 -
TestMain 适合管理每个包只启动一次的昂贵资源,但不应承载单个用例的可变数据。本文用共享 httptest 服务演示包级生命周期、不可变入口、用例命名空间、t.Cleanup 与退出码处理,让并行测试共享资源而不互相污染。134 收藏 -
Fetch 被取消后,不要只看统一的失败结果。AbortSignal.timeout 会给出 TimeoutError,AbortController 默认产生 AbortError,AbortSignal.any 会保留最先触发的 reason。本文给出可复用封装,并说明网络错误、兼容性、竞态和清理边界。466 收藏