Go语言技术文章
-
已有 JSON 对象需要嵌入另一个 JSON 时,SJSON 应使用 SetRaw 或 SetRawBytes,而不是把对象当普通字符串传给 Set。本文从类型边界、原始片段校验和审计记录三个方面给出可落地写法。435 收藏 -
MySQL NDB 原生备份由数据、事务日志与控制文件组成。本文限定 NDB 8.4,区分三类材料的职责、节点范围及归档交接误区,并给出只读清单示例与恢复准备建议。435 收藏 -
Go 自定义类型实现 encoding.TextMarshaler 后,可以用 MarshalText 统一输出 UTF-8 文本,并被部分标准编码包复用。本文从接口目标、接收者选择、错误边界和 JSON/XML 调用方讲清实现方式,再补上 TextUnmarshaler 的可逆设计。435 收藏 -
开启 TypeScript noUncheckedIndexedAccess 后,数组下标读取会带上 undefined。本文按规则、循环、索引判断和迁移边界说明怎样选择 for-of、边界检查、默认值与非空断言。435 收藏 -
PHP 的 finally 会在 try/catch 之后执行;如果 finally 中再次 return,就会覆盖原本准备返回的值,甚至让异常无法继续向外传播。本文用最小示例拆解这个控制流边界。435 收藏 -
用普通 EXPLAIN 找到 Using filesort 与 Using temporary 线索,再用 EXPLAIN ANALYZE 对照实际行数、耗时和 loops,判断排序临时表是否真的是慢点。434 收藏 -
PHP 枚举实现业务接口并不会自动定义序列化格式。本文区分原生 serialize、JSON 输出与反向恢复,给出 JsonSerializable、tryFrom 和兼容演进的完整边界写法。434 收藏 -
PHP 使用 substr 截取中文可能产生乱码。本文用 mbstring 和 mb_substr 按字符安全截取,并说明编码参数、负数起点、长度判断与显示宽度边界。434 收藏 -
Go 1.26 起标准库提供 crypto/hpke,但 KEM、KDF、AEAD 不是可以任意拼接的三个下拉框。本文从兼容性、后量子迁移、硬件环境和应用用途出发,给出 DHKEM、ML-KEM、混合 KEM、HKDF、SHAKE、AES-GCM 与 ChaCha20-Poly1305 的选择思路,并用 Seal/Open 示例固定一套可复查的配置。434 收藏 -
本文用一个只依赖标准库的 Go 小工具说明 pem.Block.Headers 如何写入自定义头字段,解释 pem.Encode 的稳定输出、错误处理、Decode 回读与测试夹具设计。434 收藏 -
Go io.LimitReader 适合放在任意 io.Reader 消费者前面建立字节上限。本文说明它与 io.ReadAll、io.Copy、JSON Decoder 的组合方式,并用 limit+1 读取区分正常 EOF、输入超限和底层错误。434 收藏 -
本文围绕 systemd EnvironmentFile 的变量语法、服务单元配置、root:专用组权限和三层生效检查,给出一套不把环境文件当 shell 脚本的安全加载方案。434 收藏 -
围绕 WHERE 等值前缀、混合 ASC/DESC 排序和稳定分页,说明 MySQL 降序索引的复合列顺序、创建方式与 EXPLAIN 判断方法。434 收藏 -
Go crypto/tls 在启动时加载多份证书,用 GetCertificate 按 SNI 精确选择并拒绝未知名称。示例说明回调调用条件、只读映射、兼容性及证书信任和业务鉴权的区别。434 收藏 -
解释 Go fs.Sub 为什么拒绝包含 .. 的路径,拆解 ValidPath 规则,并比较 embed.FS、os.DirFS、os.Root 的适用边界与排错方法。433 收藏