Go语言技术文章
-
Go 的 unicode/utf8.RuneStart 只能判断字节是否可能位于一个 UTF-8 字符的起点,不能单独完成合法性校验。本文用切片扫描、DecodeRune 和 Valid 的组合处理截断与非法序列。368 收藏 -
Go 1.27 的 go fix 新增 unsafefuncs modernizer,可把特定的 unsafe.Pointer 与 uintptr 算术改写为 unsafe.Add。本文用最小代码说明改写对象、版本门槛和人工复核边界。368 收藏 -
说明漫蛙产品站展示的离线缓存范围、书架同步和追更提醒,介绍缓存前的存储检查、权限边界与入口核验方法。368 收藏 -
按钮连点、网络重试、支付回调都可能让同一个 Go 接口收到重复请求。本文用 Idempotency-Key 设计一套可落地的防重复提交方案,讲清状态表、锁定窗口、缓存响应和边界处理。367 收藏 -
Python 3.14 将 Zstandard 纳入标准库。本文从压缩单块数据开始,逐步验证流式写入、zipfile/tarfile 归档和旧版本兼容边界,给出可直接运行的检查方法。367 收藏 -
Gemini Interactions API 的 2026 schema 迁移不只是把 outputs 改成 steps,还涉及 response_format、函数调用、工具事件、无状态历史和 SSE 监听。本文按 REST 与 SDK 两条路径给出兼容改法和验收清单。367 收藏 -
Go 中发起 Docker 的 POST 拉取镜像请求时,若直接用 json.NewDecoder.Decode() 仅读取一次,会提前终止连接,导致镜像拉取不完整;需循环解码流式响应体,直到 EOF 或错误发生。 Go 中发起 Docker 的 POST 拉取镜像请求时,若直接用 `json.Ne367 收藏 -
PHP 8.4 的日期解析失败不应再靠返回值猜测。本文用用户输入日期的实际场景,说明 DateMalformedStringException 的捕获边界、格式校验、日志记录和旧版本兼容写法。367 收藏 -
Redis Cluster 扩缩容时,业务抖动通常不是迁移命令本身造成的,而是迁移窗口、客户端重定向、热点槽位和失败收尾没有被单独核对。本文用一套可回滚的检查顺序说明如何安排迁移、观察状态并复查失败槽位。367 收藏 -
encoding/csv.Reader 遇到列数不固定的 CSV 时,应把 FieldsPerRecord 设为负数关闭列数校验,再在业务层按字段长度和列名做校验。本文比较 0、正数和负数三种设置,给出可复现的读取与验收方法。367 收藏 -
go/token 把源文件位置压缩成 Pos,真正输出错误时还要经过 FileSet.PositionFor。本文用多文件和 //line 场景说明 adjusted、文件偏移与诊断文本如何对应,并给出可复现的核对方式。367 收藏 -
文章 · java教程 | 4天前 | Java · 人工智能 · 工具调用 · Spring AI · java 工具调用 会话隔离 Spring AI ToolSearchToolCallingAdvisor
Spring AI 2.0 的 ToolSearchToolCallingAdvisor 会按会话索引工具。本文从工具全量暴露的排查现场出发,说明 session ID、工具索引和 ChatClient 之间的边界,并给出 Java 配置示例与核对清单。367 收藏 -
Redis 7.4 起支持给 Hash 的单个字段设置 TTL。本文用会话 token 场景说明 HEXPIRE、HTTL、条件更新和兼容检查,避免为了一个短期字段让整条 Hash 一起过期。366 收藏 -
Golang · Go教程 | 1个月前 | 并发 · 错误处理 · go · Context · 排错 · Go 错误链 context.WithCancelCause context.Cause 取消原因
一次请求提前结束时,ctx.Err() 往往只剩下 context.Canceled。用 context.WithCancelCause 和 context.Cause 可以保留真正的中断原因,并把它用于日志、指标和调用方处理;关键是区分父子 Context 的先后关系。366 收藏 -
WebSocket 断线后,如果每个页面都立即重连,网络抖动会迅速变成重连风暴。本文从连接状态、指数退避、随机抖动和页面可见性恢复入手,给出一套可观察、可停止、能回滚的前端重连方案。366 收藏