Go语言技术文章
-
Go 服务偶发变慢时,runtime/metrics 能把 GC 频率、暂停和堆目标放到同一组可采样指标里。本文从一次延迟抖动开始,说明如何选指标、对齐时间窗口,并排除把正常回收误判成 GC 压力。278 收藏 -
GitHub 已支持企业所有者在企业账号层安装公开的第三方 GitHub App,但企业级安装不等于自动获得组织或仓库权限。本文结合官方规则拆开权限边界、安装判断、审计验收和批量组织安装的取舍。278 收藏 -
MySQL 隐形索引适合用来验证一个索引是否仍被优化器需要。本文以订单查询为例,演示如何将索引设为不可见、用 EXPLAIN 对比计划、观察线上指标,并在结果不理想时快速恢复。278 收藏 -
json.Decoder 默认会忽略结构体中不存在的 JSON 字段。本文用兼容升级、管理接口和边界校验三个场景说明 DisallowUnknownFields 什么时候适合开启,以及如何识别 unknown field 错误。278 收藏 -
MySQL 8.4 的 INSERT 语法没有通用的 RETURNING 子句。本文用订单写入场景解释为什么不能把 PostgreSQL 式写法直接搬过来,并给出 LAST_INSERT_ID、事务内 SELECT 和多行写入的核对边界。278 收藏 -
runtime/cgo.Handle 用整数句柄把 Go 值交给 C,再由 Go 通过 Value 取回。本文用一次回调拆开句柄表、Delete 时机、失效句柄和 Go 指针规则,帮助你判断什么时候该用 Handle。278 收藏 -
Redis Lua 脚本返回多条结果时,关键不在于把值塞进 table,而在于分清 KEYS 与 ARGV、避开 nil 截断,并按 RESP2 的数组语义设计客户端解码。278 收藏 -
用 Python subprocess.run 把多行文本交给子进程,掌握 input、text、capture_output、check 和 returncode 的组合边界,避免 shell 拼接与结果误判。278 收藏 -
Python 3.12 起 cached_property 移除了此前的未公开锁,同一实例的属性计算可能被多个线程同时触发。本文用最小示例说明实例字典、_lock 与幂等读取的边界,并给出需要严格一次时的改法。278 收藏 -
Redis 8.10 新增 LMOVEM 与 BLMOVEM。本文用 COUNT、EXACTLY、OBO、BULK 四个边界说明如何在非阻塞搬运和等待数据的队列消费者之间做选择。278 收藏 -
说明 magisk 更新后显示未安装时如何回到官方 FAQ 核对隐藏应用存根、二进制版本和多用户环境,并整理更新与恢复的安全边界。278 收藏 -
Python 复制嵌套列表后原数据也变化,通常是浅复制只复制了外层容器。本文用 id、is 和 copy.deepcopy 定位共享层级,并说明深复制的适用边界。278 收藏 -
用 testing/fstest 的 MapFS 在内存中准备文件内容,测试 Go 文件读取、目录边界和缺失文件分支;再用 TestFS 检查自定义 fs.FS 的基本行为。278 收藏 -
Go 的 encoding/xml.Marshal 会按 XMLName、xml.Name、字段标签和类型名决定元素名称。本文用一个订单报文示例说明如何固定根节点、表达命名空间、把字段输出成属性,并用嵌套路径组织子元素。278 收藏 -
AI 流式输出中途断开时,不要等完整响应才落库。应以请求唯一标识和片段序号保存增量快照,区分 partial、completed、interrupted 状态,并在重连时用幂等键避免重复拼接。278 收藏