Go语言技术文章
-
先打开一个可复用的 os.Root,再用相对路径调用 Root.OpenFile;文章说明返回文件句柄的使用方式,以及 Root 与 *os.File 的关闭边界。486 收藏 -
Go 的 os.Root 可以把文件访问限制在一个目录树内。本文从 os.OpenRoot 和 Root.Open 的最小写法出发,说明 ..、符号链接、Root.FS 与 OpenInRoot 的边界,避免把路径清理误当成安全限制。486 收藏 -
navigator.locks 可以让同一来源的多个标签页共享一个命名锁。本文用资源刷新示例说明怎样把缓存检查、网络请求和写入放进同一个异步临界区,并比较 ifAvailable、signal、query 与 steal 的适用边界。486 收藏 -
journalctl 的 -p/--priority 可以按 emerg 到 debug 筛选日志。本文从单值与 FROM..TO 范围两种写法入手,说明 err 及更严重级别的默认包含关系,并组合服务、启动批次和 JSON 输出给出排障用法。486 收藏 -
TaskGroup 首个非取消异常会取消尚未完成的同组任务,并在退出时组合已产生的异常。本文用 except* 分类 ExceptionGroup,并演示如何把普通业务异常转成结果对象,从而汇总每个异步任务的失败状态。486 收藏 -
Go 的 fs.Sub 可以把一个 fs.FS 中的子目录挂载成新的文件系统。本文用 embed.FS 说明目录参数、相对路径、错误处理,以及如何把子 FS 接入 fs.ReadFile 和模板加载。486 收藏 -
Go 按分钟对齐时间的最小写法是 t.Truncate(time.Minute)。本文说明它的绝对时间语义、返回值和时区边界,并比较 Truncate、Round 与 time.Date 的适用场景。486 收藏 -
httputil.DumpResponse 没有响应头过滤参数。本文用复制 Response、复制 Header、大小写不敏感删除和 body=false 的方式生成安全调试摘要,并说明需要正文时怎样避免误伤原响应。486 收藏 -
Go fs.WalkDir 传给回调的是逻辑路径和目录项,按文件名筛选时应先用 path.Base 取出最后一段,再用 path.Match 做完整匹配,并分别处理模式错误、访问错误和目录剪枝。486 收藏 -
Go 的 crypto/x509 校验证书链时,Roots 是信任锚,Intermediates 只是补齐链路。本文从 PEM 解析开始,演示如何构造 CertPool、设置 VerifyOptions,并区分 DNS、用途和证书有效期等校验边界。486 收藏 -
Redis WATCH 在被监视键发生并发修改时让 EXEC 放弃排队事务。用双连接示例说明空回复、连接绑定、重读重算与清理,并区分冲突、命令错误和断线结果未知。486 收藏 -
Service Worker 更新并不等于页面立即切换。本文用 skipWaiting、clientsClaim 和 controllerchange 说明如何控制新 Worker 的激活与页面接管时机,避免新旧缓存混用。486 收藏 -
科技周边 · 业界新闻 | 3星期前 | 云原生 · 可观测性 · 可观测性 pprof eBPF OpenTelemetry Profiles Profiles Alpha OpenTelemetry Collector
OpenTelemetry Profiles 进入 public Alpha 后,适合先观察 pprof 兼容、资源与 trace/span 关联、eBPF 和 Collector 接入,以及后端成熟度;项目整体毕业不等于 Profiles 已适合关键生产负载。486 收藏 -
sync.Pool 适合复用可丢弃的临时对象,但不保证对象长期留在池里。本文从 GC 周期、victim cache、Get/New 边界和实际代码说明对象为什么会消失,以及哪些场景不该依赖 Pool。486 收藏 -
Import Maps 可以把浏览器模块中的相对路径统一成稳定别名。本文从 imports、路径前缀、scopes 和加载顺序入手,给出可迁移的 HTML 示例与回归清单。486 收藏