Go教程技术文章
-
用一个嵌入资源适配层同时解决 Go 静态模板打包、目录前缀隔离和单元测试替换问题。文章给出 embed.FS、fs.Sub、template.ParseFS、fstest.MapFS 与 fstest.TestFS 的完整工程写法。230 收藏 -
Golang · Go教程 | 5天前 | docker · CGO · Go教程 · CGO_ENABLED Docker Buildx cgo交叉编译 Go交叉编译镜像 多架构镜像 GNU交叉编译器
面向含 cgo 的 Go 项目,比较关闭 cgo、交叉编译器镜像和原生多架构节点三种路线,给出 amd64/arm64 GNU 工具链映射、多阶段 Dockerfile、Buildx 构建与可重复性验收方法。480 收藏 -
用 C.CBytes、C.GoBytes 和 C.free 划清 Go 与 C 的字节缓冲区所有权,避免异步保存 Go 指针造成悬空引用。379 收藏 -
Golang · Go教程 | 5天前 | CGO · 资源管理 · Go教程 · runtime.KeepAlive runtime/cgo.Handle Go cgo C库句柄 LockOSThread
Go 封装 C 库句柄时,应让一个包装对象独占 C 指针,以显式且幂等的 Close 负责释放,并用互斥锁处理并发访问。若 C API 依赖线程状态,则用锁定 OS 线程的专属 goroutine 承担创建、调用与销毁。本文同时说明 cgo 指针边界、KeepAlive、回调句柄和发布检查。400 收藏 -
Go 服务处理外部输入时,不能只校验 JSON 格式。本文给出请求体长度、字段格式与时间、并发资源预算三层限制的最小写法、错误映射和复查清单。325 收藏 -
用 go list -m -u -json all 生成 Go 模块清单,再用 govulncheck -json ./... 保存漏洞结果,在持续集成中按调用栈、修复版本和周期任务持续跟踪依赖安全。244 收藏 -
讲清 govulncheck 如何把依赖模块中的已知漏洞分成实际可达调用与仅被依赖两类,并结合调用栈、构建标签、源码与二进制扫描边界,给出升级、移除调用和复扫的实用判断清单。283 收藏 -
Go 执行跟踪能把 goroutine 的创建、运行、阻塞、唤醒、系统调用和 GC 事件放在同一时间语义下。本文通过一个尾延迟复盘示例,讲清 sched、sync、net、syscall 派生 profile 的用法,以及如何从事件栈定位调度等待与阻塞根因。228 收藏 -
Go 堆快照要同时查看 inuse_space 与 alloc_space。本文用相近负载下的多次采样、GC 对齐和 pprof 差异报告,区分高频短命分配、稳定常驻集与持续增长的长期持有。382 收藏 -
CPU Profile 只能定位 CPU 采样热点,不能单独证明优化收益。本文用固定工作负载、重复 Benchmark、benchstat 与前后 Profile 对比建立验证链,避免单次数据、环境漂移和热点转移造成误判。474 收藏 -
Go crypto/tls 中,MinVersion 和 MaxVersion 控制协议版本,CipherSuites 只影响 TLS 1.0–1.2。本文给出兼顾 TLS 1.2、TLS 1.3 与旧客户端的配置方法、选型表和排错边界。427 收藏 -
本文用 tls.Config.GetCertificate 与 atomic.Pointer 构建 Go HTTPS 证书热更新:监听端口持续运行,SIGHUP 触发加载,新证书通过密钥、有效期和主机名检查后才原子替换;失败保留旧证书,并说明既有连接、SNI、多证书和上线观测边界。243 收藏 -
Go 内部 HTTPS 服务使用自建 CA 时,不要把 InsecureSkipVerify 设为 true。本文用 SystemCertPool 与 AppendCertsFromPEM 合并信任根,配置 RootCAs,保留主机名校验,并整理证书 SAN、PEM 解析和部署路径的排查边界。332 收藏 -
Go 多层模板迁移到 embed.FS 后,可在启动期解析公共布局,再为每个页面 Clone 独立模板集合并覆盖 content 块。本文给出目录结构、完整渲染器、变更风险与回归清单,避免工作目录依赖和同名定义串页。245 收藏 -
围绕 Go html/template 的函数注册、模板解析和数据执行三个阶段,给出可复制的错误处理写法,说明 ParseFS、ExecuteTemplate、missingkey 与 HTML 转义边界。447 收藏