Go语言技术文章
-
Goldmark 的 Markdown 实例可以长期复用,但 parser.Context 是单次解析的可变状态。本文从第二次转换异常的场景出发,说明状态残留的根因、修复写法与并发边界。252 收藏 -
SBOM 主要回答制品包含什么,构建来源证明主要回答制品从哪里来以及如何生成。本文依据 CNCF 供应链安全资料,梳理两类元数据如何围绕同一个制品摘要协同,并给出签名、分发、策略检查和后续审计的边界。252 收藏 -
io.Copy 看起来只是把 Reader 写入 Writer,但 src 的 WriterTo、dst 的 ReaderFrom 以及 bufio.Writer 等包装器会改变实际路径。本文用可运行示例拆开快路径、包装器边界和验证方法,帮助定位复制速度突然下降的问题。251 收藏 -
用浏览器目录句柄完成选择与读写权限复查,配合安全上下文、用户手势和传统上传降级完成前端文件工作流。251 收藏 -
从一个知识库问答召回率下降的现场出发,拆解查询与文档向量任务类型、topK基线和Recall@K验证方法,帮助定位RAG检索问题到底在编码、切块还是排序。251 收藏 -
Go regexp.FindAllStringIndex 返回的是字节下标,不是字符序号。本文用中文字符串拆开说明下标、切片、Rune 边界和常见误用,给出可直接验证的安全写法。251 收藏 -
CSS 容器查询从尺寸条件扩展到 style() 条件后,迁移重点不只是替换语法,还要检查容器类型、继承来源、浏览器支持和响应式回归。251 收藏 -
Go 1.27 新增标准库 uuid 包。本文用 NewV7、Parse、Compare 和 String 拆开时间排序、格式兼容、非法输入与零值边界,给出可运行的请求标识示例。251 收藏 -
Go 1.23 的 maps.Keys 返回 iter.Seq,遍历顺序仍不保证稳定。本文从 for range 与 maps.Keys 的关系出发,演示如何用 slices.Sorted 得到可复现的键序列,并说明排序成本与兼容边界。251 收藏 -
Spring Framework 7.0.8 与 6.2.19 修复多项 WebFlux、MVC、WebSocket 会话和资源处理安全问题。本文按依赖盘点、版本选择、回归测试和灰度回滚给出一套不涉及漏洞利用的升级方法。251 收藏 -
用一个缓存服务和一个报表读取服务的例子,拆解 Redis ACL 中用户、命令集合与 key pattern 的关系,并用 ACL DRYRUN 验收最小权限。251 收藏 -
Service Worker 更新后仍读到旧文件,通常不是浏览器拒绝更新,而是新 worker 还在 waiting、页面仍由旧 controller 控制,或 fetch 代码继续命中旧的 Cache Storage。本文用版本化缓存、activate 清理和可控接管方式排查这个边界。251 收藏 -
讲清 Go compress/gzip.Header.Name 的设置时机、Writer.Close 和 Reader.Name 的读取方式,并区分 gzip 内部文件名与磁盘路径、下载文件名。251 收藏 -
bytes.Reader 的 Len 返回当前未读字节数,Size 返回底层字节切片的原始长度。本文用 Read、ReadAt、Seek 和 Reset 对比两者的变化,帮助你在读取循环和原始载荷统计中选对 API。251 收藏 -
PHP 8.5 升级排查不要只盯动态属性。本文把 PHP 8.5 新弃用与 PHP 8.2 动态属性历史问题分开,用 E_ALL 日志、源码扫描和测试矩阵定位受影响代码。251 收藏