Go语言技术文章
-
用 Go list -json 查看包的 GoFiles、EmbedPatterns 和 EmbedFiles,区分参与构建的 Go 源文件、嵌入声明与最终匹配到的资源文件,并给出模板化提取方式。207 收藏 -
通过 Go html/template 小程序区分正常转义、预编码导致的重复转义和 URL 上下文过滤,说明输出源码与页面显示差异,以及 template.HTML 的可信内容边界。207 收藏 -
Go 的 bufio.Reader.Peek 只查看缓冲区数据,不会推进读取位置,但返回切片会在下一次读取后失效;如果忽略 Peek 错误或把普通 Read 当成精确读取,就会误以为数据不完整。本文用最小程序复现短读、ErrBufferFull 和正确的 io.ReadFull 修复方式。207 收藏 -
用 MutationObserver 的 attributeFilter 只监听指定属性,结合 attributeOldValue 读取旧值、subtree 覆盖后代节点,并处理配置边界与 disconnect 生命周期。207 收藏 -
Go race detector 的创建栈用于追踪任务启动来源,访问栈用于定位冲突读写。通过任务编号、共享对象与互斥锁示例,说明如何确定同步责任并理解报告范围。206 收藏 -
本文从 root: 请求路径的实际问题出发,用 bytes.CutPrefix 解析协议前缀,再交给 Go 1.24 的 os.OpenRoot 和 Root.Open 读取受限根目录中的文件,并说明错误与关闭边界。206 收藏 -
os.Lstat 没有一个让它按配置决定是否跟随符号链接的开关:它固定描述链接条目,os.Stat 才描述目标。本文用 ModeSymlink、Readlink、相对路径基准和错误分支排查“配置没生效”的常见误解。206 收藏 -
Go httputil.DumpRequestOut 在 body=true 时需要读取请求体生成调试表示,再恢复 req.Body 供后续发送继续读取。本文解释这段生命周期、body 参数选择、内存与敏感数据边界,以及错误处理方式。206 收藏 -
PHP Randomizer::shuffleBytes 按字节置换字符串,中文等 UTF-8 多字节字符因此可能被拆散并显示乱码。本文解释字节与字符边界的区别,并给出 mb_str_split、shuffleArray、implode 的安全替代方式及 code point 边界提醒。206 收藏 -
Python inspect.cleandoc 可整理多行帮助文本的公共缩进。本文用简短示例说明首行规则、列表相对层级、首尾空行,以及与 strip、dedent 的区别和展示入口约定。206 收藏 -
电梯维保记录应以每台设备的唯一编号为主线,用工单号和整改项编号关联问题、责任、复查日期与结论,保留未关闭事项和修改轨迹,并区分内部台账与法定检验、安全决定。206 收藏 -
xml.Encoder 的 Indent 会按元素嵌套深度插入换行和缩进。本文说明 prefix、indent 的区别,以及 EncodeToken 场景下 Flush、Close 的收尾边界,帮助你稳定生成可读的流式 XML。205 收藏 -
解释为什么 UPDATE 的 EXPLAIN 计划看不到 Using index condition 仍可能正常:SELECT 用 ICP 减少完整行读取,而 UPDATE 必须读取并修改目标记录并维护相关索引。205 收藏 -
Java SubmissionPublisher 遇到慢订阅者时,不是简单地把消息无限堆积。本文比较 submit 与 offer 的背压、等待、丢弃和重试语义,并给出可观测的处理写法。205 收藏 -
围绕协议兼容、CRC32C 与流式更新,说明 Go hash/crc32 中 IEEE、Castagnoli、Koopman 和自定义校验表的选择方法。204 收藏