Go语言技术文章
-
分代 ZGC 是否适合,不能只看堆大小。本文从暂停目标、存活集、分配速率、并发回收余量和机器内存出发,给出 Xmx、SoftMaxHeapSize 与收集器选择的判断方法。118 收藏 -
Go 中直接调用 io.ReadAll 会把 Reader 读到 EOF。面对没有可靠长度的 HTTP 响应,应先做 Content-Length 预检查,再用 LimitReader 多读一个字节识别超限,最后把关闭、错误和解析边界统一处理。118 收藏 -
说明 Go net.Resolver 如何通过 LookupIP 的 ip4/ip6 和 DialContext 的 tcp4/tcp6 表达地址族偏好,区分 PreferGo、StrictErrors 与真正的 IPv4/IPv6 选择边界。116 收藏 -
用 Go testing/fstest.MapFS 在内存中构造文件树,让依赖 fs.FS 的读取逻辑脱离临时目录,并覆盖内容、目录和缺失文件测试。116 收藏 -
从列定义、参数绑定和 EXPLAIN 计划三处排查 MySQL 隐式类型转换,避免字符串列与数字比较导致索引无法高效查找。116 收藏 -
Go 使用 archive/tar 解包时,先把 Header.Name 归一化为目标目录内的相对路径,再用 filepath.Rel 判断边界,并分别处理目录、普通文件和符号链接。115 收藏 -
Go 文件跨盘迁移不要直接依赖 os.Rename;应在目标目录创建临时文件,复制并重新计算 SHA-256 校验,确认一致后再 Rename 替换目标,成功后按需删除源文件。115 收藏 -
Go encoding/base64 的 NewEncoder 会把不足一个完整分组的尾部数据暂存在内部,必须调用 Close 才能刷新到目标 Writer。本文用最小代码说明正确关闭顺序、StdEncoding 与 RawStdEncoding 的 padding 边界,以及 io.Copy、文件资源和错误处理的组合方式。114 收藏 -
用 dataclasses.field(default_factory=...) 为每个实例创建独立的列表、字典或集合默认值,避免可变对象共享并保留类型提示。114 收藏 -
展位调整后不要只改平面图。用一张变更单串起书面确认、合同费用、制作物料、路线指引和现场回读,才能避免旧编号、旧门楣和旧通知继续流转。113 收藏 -
Go os/exec 同时读取 StdoutPipe 和 StderrPipe 时,串行消费可能因管道缓冲写满而阻塞。本文给出 Start、双路读取、Wait 的修复顺序,并说明何时使用 CombinedOutput。113 收藏 -
PHP PDO 的模拟预处理与原生预处理,关键差异在参数模板由谁解析以及 prepare() 是否与数据库协商。本文说明 ATTR_EMULATE_PREPARES 的配置方式、唯一占位符写法、驱动兼容边界和排查清单。112 收藏 -
讲清 Go encoding/gob 新增结构体字段时的兼容规则,给出默认值处理、双向读写测试和字段改名、类型变化等迁移边界。110 收藏 -
本文讲解商汤Seko辅助内容工作室做改稿对比的方法,涵盖版本样片制作、反馈归因逻辑与改稿止损规则,配套实操建议与常见问题解答。110 收藏 -
讲清 Go gzip.Writer 写入 HTTP 响应时 Write、Flush、ResponseController.Flush 与 Close 的职责边界,给出按消息边界刷新、处理错误和排查代理缓冲的实现方案。108 收藏