Go语言技术文章
-
Linux systemd.unit 中,AssertPathExists= 会让路径缺失时的启动作业明确失败,ConditionPathExists= 则通常跳过本次启动。本文用启动作业、unit 状态和日志三项指标说明两者的选择边界与排查方法。236 收藏 -
用一组可直接复制的中英文提示词,生成适合手机锁屏的东方山谷晨雾松枝壁纸,并通过冷青灰与暖茶金两套变量制作明显不同的色彩变体。236 收藏 -
Python cmd.Cmd 的 precmd 在命令分发前改写输入,postcmd 在命令执行后接管 stop 标志。本文用一个最小命令解释器说明别名、计数和退出条件应该放在哪里。236 收藏 -
Go 的 sync/atomic.Bool 适合维护一个被多个 goroutine 访问的开关状态。本文从普通 bool 的竞争现象出发,说明 Load、Store、Swap、CompareAndSwap 的使用边界,以及复制和复合状态不能混用的问题。236 收藏 -
Redis Function 默认按可能读写处理;本文用 no-writes、FCALL_RO 和只读副本说明注册标记、调用方式与写命令拒绝边界。236 收藏 -
Go reflect.Value.MethodByName 找不到方法时会返回零 Value,不能直接 Call。本文说明 IsValid 判断、导出方法与大小写、值接收者和指针接收者差异,以及反射调用前的签名检查。236 收藏 -
sync.Map 主要适合键写入一次后高频读取,或多个 goroutine 各自操作不同键的场景;需要类型安全、同键复合更新、容量计数或一致快照时,普通 map 配合 Mutex/RWMutex 通常更清晰。本文给出判断表、封装写法和上线检查项。235 收藏 -
迁移到 encoding/json/v2 时,*T 字段遇到 null 会变成 nil,但缺失与 null 仍可能混在一起。本文用策略表、存在性感知类型和表驱动测试完成兼容处理。235 收藏 -
Go encoding/base64 返回 CorruptInputError 时,怎样把错误值还原为零基字节偏移,并区分非法字符、填充错误、尾部垃圾和 Strict 模式错误。235 收藏 -
从 Prometheus 与 OpenTelemetry 的互操作调查、Remote Write 2.0 规范和远程写入调优文档出发,拆解协议兼容、写入确认、重试幂等、队列积压和数据语义这些正在成为生态新关注点的工程问题。235 收藏 -
Go TLS 主机名校验的关键是把拨号地址与证书名称分开看:使用 tls.Config.ServerName 指定证书校验名和 SNI,保留默认证书链校验,并用 x509.VerifyHostname 理解 DNS、IP、通配符和 Common Name 的边界。235 收藏 -
bytes.Buffer 的 Reset 会清空当前长度,但会保留底层存储。本文用 Len、Cap 和阈值策略说明如何复用正常大小的缓冲区,并隔离偶发的大容量缓冲区,避免复用池长期持有异常对象。235 收藏 -
Argo CD接入渐进式发布,需要分清声明同步、单应用灰度与多应用分组。本文说明Rollouts策略、指标门槛、观测失败和Git回退的职责边界,不将同步成功等同于业务发布成功。235 收藏 -
Go atomic.Bool 适合维护读多写少的服务开关。本文从请求判断、管理侧切换、Swap 与 CompareAndSwap 的差异出发,说明零值、不可复制和不撤销已开始任务等边界。235 收藏 -
Go x/text/language.Parse 解析的是 BCP 47 语言标签,不是任意文本清洗器。本文区分格式错误、未知值和部分解析结果,说明 Parse、Make、MustParse 与 ParseAcceptLanguage 的选择边界。235 收藏