AgentSkillsCN

golang-guidelines

Go 语言编码规范的最佳实践。涵盖命名约定、代码格式、错误处理、并发控制、接口设计、项目结构等。当编写 Go 代码或进行代码审查时,可使用此技能。

SKILL.md
--- frontmatter
name: golang-guidelines
description: Go 语言编码规范最佳实践。涵盖命名约定、代码格式、错误处理、并发控制、接口设计、项目结构等。当编写 Go 代码或进行代码审查时使用。
metadata:
  author: skill-hub
  version: "1.0"
  compatibility: Go 1.18+

Go 语言编码规范

版本: 1.0 | 更新: 2026-02-02

参考:Go 官方规范、Uber Go Style Guide、Google Go Style Guide


概述

本规范适用于 Go 语言项目开发,旨在确保代码质量、可维护性和团队协作效率。

技术栈

组件版本说明
Go1.18+支持泛型
Go Modules默认依赖管理
gofmt/goimports最新代码格式化

何时使用此 Skill

场景触发词
编写代码写 Go、写 Golang、写函数、写结构体
命名咨询Go 命名、变量名、函数名、包名
代码审查Go 代码审查、code review
最佳实践Go 最佳实践、规范、标准写法
并发编程goroutine、channel、sync
错误处理Go 错误处理、error handling

快速参考

核心规范速查

规范要点
命名驼峰命名、导出用大写开头、包名小写单词
格式强制使用 gofmt,Tab 缩进
错误处理必须处理 error、使用 errors.Wrap 添加上下文
并发使用 context 传递取消信号、避免裸 goroutine
接口小接口原则、接口放调用方

禁止项速查

❌ 禁止✅ 正确做法
忽略 error _ = fn()处理或显式忽略并注释原因
裸 goroutine go fn()使用 errgroup 或 recover
init() 中复杂逻辑显式初始化函数
导出全局变量使用函数封装访问
panic 替代 error仅在不可恢复时 panic
包级别 contextcontext 作为第一参数传递

详细规范目录

主题文件内容概要
命名规范naming.md变量、函数、结构体、包、接口命名
代码格式code-format.mdgofmt、行长度、空行、注释
错误处理error-handling.mderror 返回、错误包装、自定义错误
日志规范logging.md结构化日志、日志级别、上下文
并发控制concurrency.mdgoroutine、channel、sync、context
接口设计interface.md小接口、隐式实现、接口位置
测试规范testing.md表驱动测试、Mock、Benchmark
性能优化performance.md内存分配、切片预分配、字符串拼接
安全规范security.md输入校验、SQL 注入、敏感数据
项目结构project-structure.md标准布局、/cmd, /internal, /pkg

代码评审 Checklist

必查项

检查点说明
命名规范是否符合 Go 命名惯例
错误处理error 是否被正确处理或包装
并发安全goroutine 是否有 recover,资源是否正确释放
context 使用是否正确传递和使用 context
接口设计接口是否足够小,是否放在调用方
测试覆盖核心逻辑是否有单元测试

版本历史

版本日期变更
1.02026-02-02初始版本