Go语言技术文章
-
slog.LogValuer 适合把昂贵或需要脱敏的日志值延迟到 Handler 真正处理时再计算,但它不是所有日志字段的默认包装。本文用 LogAttrs、Handler.Enabled 和 LogValue 的真实调用链说明何时值得使用,以及递归解析和敏感字段的边界。359 收藏 -
Python 的 functools.lru_cache 会保护缓存结构,但不会保证同一个冷键只计算一次。本文用并发时序拆解命中、未命中、重复计算和参数规范化边界,并给出可验收的使用方式。168 收藏 -
用 Go slices.Chunk 把一批记录切成分页批次,重点说明尾批、空输入、n 校验和切片别名风险,并给出可复现的基线与验收方法。123 收藏 -
ArrayDeque 明确禁止 null,不是实现遗漏,而是为了让 pollFirst 的 null 返回值稳定表示“队列为空”。本文从 addLast、pollFirst 和空值哨兵的关系出发,说明如何改造入队契约并验证边界。180 收藏 -
科技周边 · 业界新闻 | 1星期前 | go · 工具链 · microsoft · Go 1.27 · 企业开发 · Microsoft Build of Go Go 1.27.0-1 Go 工具链 企业镜像 平台加密后端
Microsoft 于 2026 年 8 月 20 日发布 Go 1.27.0-1 构建版。企业升级时不能只比较版本号,还要核对上游标签、构建来源、平台加密后端配置变化和 FIPS 行为,再把结果落到镜像验收与回退记录中。388 收藏 -
用一个懒加载配置的实战场景,拆解 Go sync 标准库如何让并发调用共享一次初始化结果,重点说明错误也会被缓存、失败重试为何必须创建新实例,以及如何用测试验证并发语义。408 收藏 -
Go 的 atomic.Int64 不能在首次使用后复制。本文从 noCopy 约束、指针接收者和结构体字段设计出发,给出并发计数的安全写法与检查方法。258 收藏 -
PHP 对象持久化从 __sleep/__wakeup 迁移到 __serialize/__unserialize 时,真正需要处理的是字段版本、缺失字段和不可信输入。本文用一个订单快照对象拆开保存格式、兼容恢复与验收边界。176 收藏 -
bufio.Scanner 默认缓冲区遇到超长日志行会返回 ErrTooLong。本文用可复现的日志读取场景说明如何设置 Buffer、何时改用 bufio.Reader,以及怎样验证内存和错误边界。361 收藏 -
从一个需要同时排序整数、字符串和业务结构体的场景出发,拆解 Go 泛型约束、比较器和类型集合的组合方式,给出可编译的最小实现、边界判断与测试方法。459 收藏 -
RAG 应用回答看似流畅却总带错文档,通常不是模型突然失常,而是切分、召回和证据核对没有连成一条可追踪链路。本文用一个知识库排障场景,拆解如何定位错召回并验证修复效果。141 收藏 -
Go 的 io.Reader 读取循环里,io.EOF 通常表示输入已经结束,但 n 仍可能大于 0。本文用一个可复现的读取器说明短读、空读和 EOF 的处理顺序,避免丢掉最后一段数据或写出忙等循环。137 收藏 -
Go 的 time.Duration 本质是 int64 纳秒数。本文用具体换算、溢出判断和定时器示例说明,为什么长时间配置会变成负数,以及如何在进入 time.NewTimer 或 time.After 前拦住错误值。348 收藏 -
解释 Redis HSCAN 的 COUNT 参数为什么只是提示值,演示如何用游标循环完整遍历 Hash,并通过批次上限控制客户端内存与处理耗时。319 收藏 -
目录扫描从 os.ReadDir 改成 os.File.ReadDir(n) 后,读取阶段可以按批次控制内存,但全局排序需求不会自动消失。本文用一个目录索引任务拆开读取、排序、错误收口和验收门禁,给出可复用的 Go 实现与取舍方法。378 收藏