Go语言技术文章
-
解释 go test 的两种执行模式、(cached) 命中条件、count=1 对照方法和 go clean -testcache 的清理边界,帮助排查修改后结果不变。195 收藏 -
制造企业委外加工验收单建议按批次身份、检验明细、整批判定和异常闭环设置字段,既能记录检验依据与实测结果,也能追踪不合格处置和复验关闭。195 收藏 -
Golang · Go教程 | 2星期前 | Context · Go教程 · net/http · Go context.Context ErrHandlerTimeout http.TimeoutHandler HTTP 处理器超时
Go 标准库的 http.TimeoutHandler 可以为单个 HTTP 处理器设置时间边界,超时向客户端返回 503。本文说明最小包装方式、请求上下文取消、响应缓冲,以及它与 Server 超时配置和流式处理的边界。195 收藏 -
OpenTelemetry 日志信号并不要求立刻替换现有日志系统。本文从日志数据模型、Collector 管道和灰度迁移三个层面说明如何接入文件日志、Syslog 与应用日志。195 收藏 -
Redis HyperLogLog 可通过 PFADD 和 PFCOUNT 估算 UV。本文说明稳定访客标识、日期分桶、跨日并集、标准误差与过期策略,并区分趋势看板和精确成员需求。195 收藏 -
Go os.File.Chmod 用 FileMode 更新已有文件的权限位。本文从打开与创建的边界出发,说明 0o600、0o640 的写法、错误处理、修改后读取和 Unix、Windows 差异。195 收藏 -
切换 JSON v2 时,应按字段协议处理 string 标签,而不是只替换 import。本文对比数字、文本、布尔与集合的适用边界,给出最小 DTO 和旧接口渐进迁移建议。195 收藏 -
go/doc/comment.Parser 接收已经去除 // 或 /* */ 标记的文档注释文本,返回可遍历的 *comment.Doc。本文用一个小型源码分析场景说明如何读取段落、标题和链接,并按需要交给 Printer 输出。195 收藏 -
Go 流式响应一直到处理结束才到客户端,通常不是一个原因。本文拆开服务端 Flush、ResponseWriter 包装器和 HTTP 代理三层,给出可处理 Flush 错误的排查与实现方式。195 收藏 -
Linux systemd 的 KillMode 决定停止 unit 时是只处理主进程,还是回收整个控制组。本文对比四种取值、停止信号与超时行为,并给出 systemctl 排查方法。195 收藏 -
Go os.Stat 失败时不要只比较错误字符串:用 errors.Is 区分文件不存在与权限拒绝,再从 PathError 提取操作和路径信息,覆盖中间目录不可访问等排障边界。195 收藏 -
Redis RANDOMKEY 在空数据库中返回 nil/null,但抽到名称为空的真实键时返回长度为 0 的普通字符串。本文从命令语义、RESP2/RESP3 编码和 Go 客户端处理三层说明如何区分两种情况。195 收藏 -
Go 32 位平台使用 64 位原子计数器时,普通 uint64 与 atomic.Uint64 的对齐责任不同。本文比较旧式原子函数、类型化原子对象和互斥锁的适用边界,给出结构体布局与兼容检查清单。195 收藏 -
比较Go database/sql结果集的自动关闭、defer和显式关闭,区分QueryContext、Scan、Err、Close的错误入口,用完整读取函数处理早退、迭代失败和关闭错误。195 收藏 -
json.Decoder.Decode 返回 nil 只说明成功读取了下一个 JSON 值,并不保证输入流已结束。本文用二次 Decode 与 io.EOF 检查,区分空白结尾、第二个 JSON 值和非法尾随字节。194 收藏