Go语言技术文章
-
Go 1.23 引入的 os.CopyFS 可以把 embed.FS 等 fs.FS 内容复制到磁盘,但不会覆盖已有文件。本文用一个配置目录示例讲清创建权限、覆盖错误、符号链接和可重复部署的核对方法。374 收藏 -
Golang · Go问答 | 1星期前 | 标准库 · go · 正则表达式 · 性能 · Go MustCompile regexp.MatchString regexp.Compile 并发复用
Go 的 regexp.MatchString 适合快速判断,但把 regexp.Compile 放进热循环会反复解析模式。本文对比一次编译、MustCompile、动态模式和并发复用的边界,给出可运行的性能与输入验收方法。382 收藏 -
io.MultiWriter 会按传入顺序逐个写入,某个 Writer 返回错误或短写入后立即停止,不会继续后面的目标。本文用日志分流场景拆解部分写入、ErrShortWrite、重试与一致性边界。279 收藏 -
Linux 服务启动失败时,先用状态命令确认状态,再用 journalctl -u 读取本次启动日志,区分配置错误、权限问题和依赖未就绪,最后用可回滚的 drop-in 配置完成验证。351 收藏 -
Python dataclasses 使用 list、dict 等可变默认值时,必须用 field(default_factory=...) 为每个实例创建独立对象。本文用配置示例验证共享问题、嵌套工厂和迁移检查点。479 收藏 -
Go HTTP 客户端偶发变慢时,只看总耗时很难判断问题在 DNS、建连、TLS 还是服务端首字节。本文用 net/http/httptrace 的 ClientTrace 串起关键回调,区分连接复用与新建连接,并给出可落地的耗时记录和排查边界。467 收藏 -
文章 · java教程 | 1星期前 | Java · nio · 工程实践 · 文件属性 · 配置热加载 · java 配置文件 Files.readAttributes BasicFileAttributes fileKey
配置热加载不能只比较 lastModifiedTime。本文用 Java Files.readAttributes 读取 BasicFileAttributes,结合 fileKey、文件大小和时间戳,判断原文件被覆盖、替换或仅内容变化时应该怎么处理。414 收藏 -
Golang · Go问答 | 1星期前 | golang · slog · 日志排查 · 结构化日志 · Go 1.21 · 结构化日志 JSON日志 Go slog.WithGroup slog嵌套字段 日志属性
Go slog.Logger.WithGroup 用组名组织结构化日志字段,但空组名不会创建嵌套层,属性归属还会受到 Handler 处理规则影响。本文用 JSON 输出示例拆解 WithGroup、WithAttrs 和重复组名的边界。247 收藏 -
time.Duration 本质是纳秒数量的 int64 别名。参与整数除法时结果会向零截断,先明确单位和余数,再决定是否转换为浮点或保留纳秒精度。242 收藏 -
Go 接收多种 JSON 事件时,不必一开始把所有 payload 解成 interface{}。用 json.RawMessage 保留原始 JSON,再按 kind 分流解析,可以减少无效结构体和类型断言;但它仍然持有字节数据,不能替代大小限制、深拷贝和错误校验。421 收藏 -
科技周边 · 业界新闻 | 1星期前 | oauth · mcp · 业界新闻 · Cloudflare · 安全治理 · Wrangler · Cloudflare OAuth 权限管理 MCP scope Wrangler
Cloudflare 于 2026 年 8 月 22 日为 Wrangler 与 Cloudflare API MCP server 引入可选 OAuth scopes。本文从授权界面、最小权限选择、调用失败后的重授权和回滚核对四个方面拆解这次变化。118 收藏 -
Golang · Go教程 | 1星期前 | golang · 基准测试 · testing · 性能 · benchmark · 基准测试 Go Go 1.24 testing.B.Loop 性能验证
Go 1.24 引入 testing.B.Loop 后,基准函数不必再手动围绕 b.N 组织循环。本文用一个可运行的小实验说明循环边界、计时窗口、结果保活和旧写法迁移,并给出核对 ns/op 与自定义指标的检查方法。156 收藏 -
模型服务出现限流、超时或参数错误时,AI 网关不能把所有失败都交给重试。本文从统一请求契约出发,拆分可降级、可重试和必须直返的错误,并用幂等键保护跨模型切换后的结果一致性。347 收藏 -
maps.Clone 能复制 Go 的 map 容器,但它只做浅拷贝:值是切片、map 或指针时,嵌套数据仍可能共享底层对象。本文用配置快照场景说明互相影响的原因、如何按层复制,以及什么时候不必做深拷贝。139 收藏 -
Go 的 iter.Pull 把 push-style 迭代器变成 next/stop 拉取接口,但提前结束时必须调用 stop 让 yield 协程收尾。本文用资源清理、重复 stop 和测试替身说明它的生命周期与并发边界。133 收藏