Go语言技术文章
-
go env -changed 只显示 Go 工具链有效值与默认值不同的设置。本文解释它的比较边界、空结果含义,并配合 go env -json、-w、-u 快速定位和清理自定义配置。191 收藏 -
从方法、主机、路径段、尾斜杠、通配符和转义规则解释 Go ServeMux 为什么未命中,并用 Handler 返回值定位实际匹配模式。191 收藏 -
Go os.Rename 遇到已存在的目标目录会返回错误,不能把目录替换误当成文件覆盖。本文说明错误识别、非空目录保护、合并迁移与回滚边界。191 收藏 -
Java 正则替换时,美元符号和反斜杠可能被当成 replacement 语法。本文纠正 Pattern.quoteReplacement 的类名误解,说明 Matcher.quoteReplacement 的用法、边界与最小示例。191 收藏 -
MySQL gap lock 保护索引间隙,锁定范围不一定等于 WHERE 条件范围。本文用 MySQL 8.4 InnoDB 双会话示例解释范围外插入等待,并给出锁依赖查询、释放方式及隔离级别调整的注意事项。191 收藏 -
梳理小微企业新员工参保办理顺序,说明用工30日内登记、试用期参保、单位增员、医保联办、缴费工资申报与实际缴费的衔接,并标明地方入口差异。191 收藏 -
Go ksuid 的 KSUID 时间部分适合做按生成时间的大致排序线索,但只有秒级粒度且依赖生成机时钟,不能直接替代业务事件的精确发生时间。本文说明 Time 与 Timestamp 的区别,并给出事件时间单独落库的建模方式。191 收藏 -
Go compress/zlib.NewReader 可以把 zlib 压缩数据接成 io.ReadCloser,随后用 io.Copy 或自定义读取逻辑流式解压。本文从格式边界、创建错误、资源关闭、读取错误和预置字典几个角度给出可直接改造的写法。191 收藏 -
MySQL EXPLAIN ANALYZE 中的 loops 表示迭代器实际执行次数。本文结合 rows、actual time 和嵌套循环 JOIN,说明如何读懂它并定位估算偏差。190 收藏 -
用 Go 1.27 的 goroutineleak profile 给集成测试增加可留存的并发泄漏证据,掌握 pprof 入口、测试采集、结果解读与 CI 边界。190 收藏 -
本文用 veritysetup 演示 Linux dm-verity 的数据区、哈希区与可信 root hash 关系,说明如何先校验再创建只读映射,并梳理根文件系统启动、损坏处理和完整性边界。190 收藏 -
用 Go testing.B.Run 把一次性样本准备与串行子基准测量分开,说明参数命名、计时边界、结果输出和 RunParallel 的注意事项。190 收藏 -
用 Go testing.B.SetBytes 为文件、编码或压缩类基准标记单次处理字节数,让结果同时显示 ns/op 与 MB/s,并解释输入规模、B/op 和并发基准的边界。190 收藏 -
TreeSet 不是用 equals 直接判断重复,而是沿着 compareTo 或 Comparator.compare 的结果定位元素。本文用一个只比较年龄的场景解释 compare 返回 0 为什么会让第二个对象无法加入,并给出主键加唯一标识的稳定改法与迁移检查清单。190 收藏 -
用 btop 的内存排序、过滤、暂停和详情面板定位 Linux 内存占用异常进程,再用 ps 与 /proc 做第二次确认,避免只凭一帧数据误判。190 收藏