SuperAPI AI 工具集

golang-patterns

编程与开发

查看项目

更新于 10-15 20:21

技能介绍

该资料是一份 Go 惯用模式与最佳实践指南,适用于编写新 Go 代码、评审 Go 代码、重构既有代码以及设计 Go 包或模块。

核心原则:偏好简单与清晰;让零值可直接使用;函数接受接口参数、返回具体类型。

错误处理:用 fmt.Errorf 与 %w 包装上下文;定义自定义错误类型与哨兵错误;用 errors.Is 和 errors.As 判断;不要忽略错误。

并发模式:worker pool、用 context 做取消与超时、优雅关闭、errgroup 协调 goroutine,以及避免 goroutine 泄漏(使用带缓冲 channel 加 select)。

接口设计:定义小而专注的接口,在使用方包中定义,借助类型断言支持可选行为。

包组织:给出含 cmd、internal、pkg、api、testdata 的标准布局;包名短小写、无下划线;避免包级可变状态,改用依赖注入。

结构体设计:函数式选项模式、用嵌入做组合。

内存与性能:已知大小时预分配切片、频繁分配用 sync.Pool、循环中避免字符串拼接,优先 strings.Builder 或 strings.Join。

工具链:go build、go test、go test -race、go test -cover、go vet、staticcheck、golangci-lint、go mod tidy、go mod verify、gofmt、goimports,并给出 .golangci.yml 推荐配置片段。

还包含惯用法速查与反模式(长函数裸返回、用 panic 控制流程、在结构体中传 context、混用值/指针接收者)。

安装方式、授权与收费信息暂未提供。