Go教程技术文章
-
Go 内部 HTTPS 服务使用自建 CA 时,不要把 InsecureSkipVerify 设为 true。本文用 SystemCertPool 与 AppendCertsFromPEM 合并信任根,配置 RootCAs,保留主机名校验,并整理证书 SAN、PEM 解析和部署路径的排查边界。332 收藏 -
本文用 Go 1.27 实验性 simd 包实现 float32 最小—最大归一化:标量求 min/max,向量完成减法与除法,并处理尾部、常量数组和 NaN。332 收藏 -
Bubble Tea 会把终端初始尺寸和后续变化送进 Update。本文用 WindowSizeMsg 保存宽高,再让 View 根据模型尺寸重算布局,并说明过窄窗口与 Windows 平台边界。332 收藏 -
Go 上传接口不能只调用 FormFile。本文用 MaxBytesReader 限制完整请求体,用 ParseMultipartForm 控制内存阈值,并通过 MultipartForm.RemoveAll、随机落盘名和失败回滚正确清理临时文件。331 收藏 -
Go 处理外部文件名时,filepath.Join 不能单独构成目录访问边界。本文结合 os.OpenInRoot 和 os.Root,说明固定目录、相对路径、符号链接、Root 生命周期以及平台限制应该怎样设计。331 收藏 -
反向代理要控制上游协议,关键是给 ReverseProxy 配置自定义 Transport.Protocols,而不是只修改入口 Server.Protocols。本文用 Go 代码说明 HTTP/1、TLS HTTP/2、明文 HTTP/2 的选择、回滚与排查边界。330 收藏 -
介绍 Go encoding/json 在动态解码时使用 Decoder.UseNumber 保留大整数文本,并安全转换为 int64、uint64 或 big.Int。328 收藏 -
介绍 Go 1.24+ 使用 http.Server.Protocols 开启明文 HTTP/2 的方法,涵盖同端口兼容、客户端核对、安全边界与审计清单。328 收藏 -
介绍 Go tls.ConnectionState 的三种读取入口,解析 TLS 版本、密码套件、ALPN、叶子证书和验证链,并说明空字段边界。327 收藏 -
用 Go csvutil 编写逐条解码库存 CSV 的统计工具,只保留当前结构体与计数器,说明 EOF、表头、空字段和下游持有方式为何影响真正的流式处理。327 收藏 -
讲清 Go xml.Decoder.Token 如何从 io.Reader 逐个读取大型 XML,并用 DecodeElement、Skip、InputPos 和 Token 生命周期规则实现低常驻内存的单记录处理。326 收藏 -
Go 1.23 起,sync.Map.Clear 可直接删除并发映射中的全部条目,清空后仍能继续 Store 和 Load。本文通过可重置缓存示例说明基本用法、并发写入边界、旧版本兼容方案,以及需要严格换代时的原子指针切换设计。326 收藏 -
Go csvutil 处理 HexID、业务枚举等非基础字段时,可以用 UnmarshalCSV/MarshalCSV 或注册转换器统一文本格式。本文按升级变更单的方式比较旧写法与新写法,说明错误处理、注册优先级和回归检查。326 收藏 -
Go 1.25 的 sync.WaitGroup.Go 把任务登记和完成扣减绑定到一个函数边界,本文说明空组、嵌套任务、异常函数和 Add/Done 兼容场景的调用边界。326 收藏 -
Go 的 bits.Add64 能同时返回 64 位和与一位进位。本文从 128 位加法扩展到任意长度 uint64 切片,讲清字序、进位传播、不等长补零和最高位溢出处理。325 收藏