Go教程技术文章
-
多租户服务若共享可变 x509.CertPool,容易把一个租户的私有 CA 扩散给其他租户。本文通过故障复盘给出独立根池、TLS 绑定、轮换与测试方案。212 收藏 -
Go 的 cookiejar.Options 可通过 PublicSuffixList 限制 Cookie 的域作用范围。本文讲清 publicsuffix.List 接入方式、nil 配置风险、自定义接口约束与公网客户端实践。211 收藏 -
Ristretto v2 可以用 SetWithTTL 为每个缓存键设置独立过期时间,GetTTL 则能读取剩余 TTL 并区分未找到和永久缓存。本文从一个缓存同时保存短时与长时数据的场景出发,说明 Wait、返回值、容量淘汰和 TTL 到期之间的排查边界。211 收藏 -
比较大字节序列时,已有 []byte 就直接使用 bytes.Equal,不必先转换成 string。本文说明它的判断边界、与前缀和排序 API 的区别,以及性能和并发注意事项。211 收藏 -
Go database/sql 的 sql.DB 是连接池。需要让一组操作落在同一个数据库会话时,可以用 DB.Conn 获取独立连接;操作结束必须调用 Conn.Close 将连接归还池中,并用上下文控制等待时间。209 收藏 -
围绕 time.Ticker 的动态改周期、永久停止和停止后复用,讲清 Reset、Stop 与 C 通道之间的调用顺序,避免重复创建和并发竞态。208 收藏 -
Go netip.ParseAddrPort 可以把带数字端口的 IPv4 或 IPv6 文本解析为 AddrPort,再通过 Addr 和 Port 读取结构化结果。本文说明方括号、非法输入、主机名和 SplitHostPort 的边界。208 收藏 -
围绕 encoding/xml.Decoder.Token 讲清混合 XML 节点的顺序读取、StartElement 分派、CharData 处理和 Skip 跳过嵌套子树,给出可复用的 Go 遍历函数与边界处理方式。208 收藏 -
用 Go 的 html/template 生成 HTML 邮件,演示正文、属性和 URL 上下文的自动转义,并说明 template.HTML 只适用于可信片段。207 收藏 -
ServeMux 的匹配不是简单比较路径字符串,而是综合方法、主机和路径,并按请求集合的具体程度选择模式。本文用请求生命周期拆解通配符、优先级、405、尾斜杠和 Go 1.22 兼容边界。207 收藏 -
Go reflect 中 ConvertibleTo、AssignableTo、CanConvert、CanSet 与接口断言职责不同。本文用命名类型、接口字段和动态值示例说明转换、赋值与断言的边界,帮助反射代码减少 panic。206 收藏 -
本文演示 Go base32.NewDecoder 如何配合 io.CopyBuffer 流式解码大文件,并补充编码一致性、大小限制、错误处理和临时文件提交。206 收藏 -
用 go/parser 生成 Go AST,再用 ast.Preorder 以迭代器形式完成深度优先前序遍历;同时比较 Inspect 与 PreorderStack 的控制边界,并处理解析错误、节点筛选和源文件位置。206 收藏 -
本文用 Go net/http ServeMux 组织方法、路径和命名通配符,说明路由优先级、PathValue 参数读取、冲突边界与旧版本兼容写法。205 收藏 -
Go PGO 的关键不是随便拿一份 CPU profile,而是让 profile 代表真实工作负载。本文从采集范围、统一采样窗口、多实例合并到 default.pgo 和 -pgo 构建,整理一套可以持续更新的准备方法。205 收藏