Go教程技术文章
-
用一个嵌入资源适配层同时解决 Go 静态模板打包、目录前缀隔离和单元测试替换问题。文章给出 embed.FS、fs.Sub、template.ParseFS、fstest.MapFS 与 fstest.TestFS 的完整工程写法。230 收藏 -
解释 Go 泛型接收者参数与方法自身类型参数的区别,说明 List[E]、Pair[First, _] 和 Map[R] 的声明位置、参数映射与 Go 1.27 的接口边界。228 收藏 -
Go 执行跟踪能把 goroutine 的创建、运行、阻塞、唤醒、系统调用和 GC 事件放在同一时间语义下。本文通过一个尾延迟复盘示例,讲清 sched、sync、net、syscall 派生 profile 的用法,以及如何从事件栈定位调度等待与阻塞根因。228 收藏 -
以逗号分隔标签的规范化函数为例,用 Go Fuzz 检查编解码往返、幂等、UTF-8、排序与去重性质,并给出种子语料、运行预算和失败输入回归方法。226 收藏 -
Go 更新配置文件时不要直接截断正式文件。把临时文件放在同一目录,完整写入并同步关闭后,再用 os.Rename 一次性切换,才能降低半文件和并发读取风险。225 收藏 -
用 Go embed.FS 把静态目录编译进程序,掌握 //go:embed 的路径模式、包边界、隐藏文件规则,以及接入 HTTP 和模板解析时的目录约定。220 收藏 -
在 Go 1.25+ 中,可先用 os.OpenRoot 建立可信目录边界,再用 Root.MkdirAll 创建父目录,并通过 Root.OpenFile 的 O_CREATE|O_EXCL 策略安全创建相对路径文件。本文同时说明覆盖、并发和部分写入边界。219 收藏 -
Go 的 io.Pipe 可把只会写入的生产者连接到只会读取的消费者。本文用完整示例说明同步背压、关闭顺序、错误传播以及避免 goroutine 阻塞的方法。218 收藏 -
Go 验证 HMAC 时应先用同一密钥和同一原始消息重算标签,再把对方标签解码为字节,最后交给 hmac.Equal 做恒定时间比较。本文给出函数与 Webhook 示例。213 收藏 -
Golang · Go教程 | 9小时前 | JSON · 时间处理 · Go教程 · database/sql · 后端开发 · RFC3339 Go时间序列化 time.Duration JSON 数据库时间戳 sql.NullTime
用一个小型任务接口统一 Go 业务时间、Duration 与数据库可空时间戳,给出自定义 JSON 类型、仓储映射和往返测试。212 收藏 -
Go 的 cookiejar.Options 可通过 PublicSuffixList 限制 Cookie 的域作用范围。本文讲清 publicsuffix.List 接入方式、nil 配置风险、自定义接口约束与公网客户端实践。211 收藏 -
用 Go 的 html/template 生成 HTML 邮件,演示正文、属性和 URL 上下文的自动转义,并说明 template.HTML 只适用于可信片段。207 收藏 -
本文演示 Go base32.NewDecoder 如何配合 io.CopyBuffer 流式解码大文件,并补充编码一致性、大小限制、错误处理和临时文件提交。206 收藏 -
Go 批量任务如果靠定时轮询检查状态,既浪费唤醒次数又难以处理关闭流程。本文用 sync.Cond 把状态检查、等待和批量唤醒组织起来,并说明 Signal、Broadcast 与退出条件的选择。204 收藏 -
Go 1.27 支持具体类型声明带自身类型参数的方法,但接口方法仍不能声明类型参数,泛型方法的某次实例化也不会进入类型的方法集。本文给出普通接口方法、泛型函数和适配器三种组合方式。201 收藏