Go教程技术文章
-
Go 的 x509.CertPool.AddCert 可以把已解析的自签名或内部 CA 证书加入信任池。本文从 PEM 解析、系统根池组合和 tls.Config.RootCAs 三个连接点说明正确用法,并区分未知 CA、主机名不匹配与证书过期等常见错误。358 收藏 -
用 strconv.IsPrint 按 rune 判断字符是否适合进入可读日志,说明空格、控制字符、UTF-8 合法性与日志脱敏之间的边界,并给出检查和过滤代码。349 收藏 -
Go net/http/pprof 默认会注册一组运行时诊断处理器,但诊断入口不应该跟业务接口一起匿名暴露。本文用专用 ServeMux 和鉴权中间件把请求从入口、校验、profile 输出到工具消费串成一条链,并说明拒绝响应、采集时长和关闭诊断服务的边界。217 收藏 -
Go runtime/trace.StartRegion 返回一个需要在同一 goroutine 中结束的 Region。本文用最小 trace 接入示例说明 defer、regionType、嵌套和 goroutine 边界,并比较 StartRegion、WithRegion 与 NewTask 的适用场景。112 收藏 -
Go io/fs 的 FileInfo.ModTime 不是直接读取宿主机文件,而是读取文件系统实现提供的元数据。本文用 fs.Stat 和 fstest.MapFS 说明如何读取、判断零值、统一展示时区,并解释虚拟文件系统为什么可能没有可靠的真实修改时间。423 收藏 -
使用 go/parser 分析 Go 源码时,ParseComments 决定 AST 是否保留注释。本文从 ParseFile、ast.File.Comments 和声明 Doc 注释入手,给出可直接改造的解析示例。413 收藏 -
以文件摘要场景比较os.ReadFile和os.Open,解释全文切片、流式读取、固定缓冲、部分读取错误与资源关闭,避免换用Open后仍保留全部数据。114 收藏 -
围绕 Go bufio.Reader.Discard 说明完整跳过、部分跳过、EOF 和底层读取错误的判断方式,并给出固定字节跳过的安全封装与参数边界。199 收藏 -
围绕 Go io.Pipe 的同步读写关系,说明生产者如何用 PipeWriter.CloseWithError 把错误传给消费者,以及读端提前退出时怎样通知写端解除阻塞。170 收藏 -
用MaxBytesReader限制Go HTTP请求体的实际读取字节数,识别MaxBytesError并返回413,说明完整读取、部分数据丢弃、Content-Length和JSON解析边界。474 收藏 -
Go strconv.AppendQuoteRuneToASCII 可以把单个 rune 追加为带单引号的 ASCII Go 字符字面量。本文说明如何接住返回切片、处理非 ASCII 转义,并区分它与 QuoteRune、AppendQuoteRune 等相邻 API。372 收藏 -
本文围绕 Go crypto/cipher.NewGCMWithRandomNonce,说明如何让 Seal 自动生成并携带随机 nonce,再由 Open 自动提取 nonce 完成 AES-GCM 解密,并整理版本、密钥和密文长度边界。304 收藏 -
Go image/draw 的核心是让目标矩形 r.Min 与源点 sp 对齐。本文从目标画布、偏移坐标、Over 与 Src、非零边界和裁剪规则出发,给出可复用的偏移绘制方案。294 收藏 -
围绕 Go sql.DB.SetConnMaxLifetime 说明连接年龄、空闲时长与连接数量的区别,给出连接轮换配置、DBStats 观察方法和生产边界。332 收藏 -
Go cipher.StreamReader 可以把已有的 cipher.Stream 与 io.Reader 组合成按需解密的读取器。本文说明密文 Reader、流密码、分块读取、EOF 处理、资源关闭和 AEAD 安全边界。270 收藏