Go编码规范 工程实践 代码审查

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

提供Uber Go风格指南的中文学习与工程落地参考。

一句话选型结论

按资料字段整理

Go编码规范 工程实践 代码审查是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_a10ab3ad/uber-go-guide-pl
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_a10ab3ad仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791737505
正文体量21.9 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
Go编码规范 工程实践 代码审查当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

21.9 KB
模型实际读到的说明书原文,来自技能仓库

> 📜 用户协议(User Agreement)
> 1. 本 Skill 仅供学习与参考用途。使用本 Skill 产生的任何结果,由使用者自行承担全部责任;本 Skill 不提供任何明示或暗示的保证。
> 2. 涉及法律、财务、税务、投资、医疗等专业决策时,请务必咨询持证专业人士。
> 3. 本代码受版权法保护,未经授权复制、反向工程或商业利用将被追究法律责任。
<!-- user-agreement-injected -->

> ⚠️ 本内容仅供一般信息参考,不构成法律、财务、税务、投资或医疗建议。
> 涉及合同签署、报税、投资、诊疗等专业决策时,请务必咨询持证专业人士,并由使用者自行承担决策后果。
<!-- professional-disclaimer-injected -->

> 本内容由 AI 生成,仅供学习参考
<!-- ai-generated-notice -->

Uber Go 风格指南 · 中文学习与实践 Skill

本 Skill 面向 Go 语言开发者,提供 Uber 官方 Go 风格指南(uber-go-guide)的中文学习路径、工程落地清单与代码审查辅助。它是一份学习与参考工具,帮助你理解规范背后的原理,并在实际项目中逐步应用。


一、能力边界:一页纸速查卡

✅ 能做(核心能力)

编号 能力项 说明
1 规范速查 按主题(命名、控制流、错误处理、并发等)输出精简版规范条目
2 代码示例对照 提供"不推荐 vs 推荐"的代码片段对比,并解释原因
3 审查清单生成 根据用户提供的代码片段,生成针对性的审查要点列表
4 学习路径规划 根据用户经验水平(新手/进阶),推荐学习顺序与重点
5 常见反模式识别 识别代码中常见的反模式(如嵌套过深、错误被吞掉等)

❌ 不能做(边界声明)

编号 限制项 说明
1 不替代官方文档 本 Skill 是学习辅助,不保证覆盖 Uber 指南的全部细节,请以官方仓库为准
2 不提供静态分析 本 Skill 不执行代码扫描,仅基于用户提供的文本片段进行分析
3 不保证代码正确性 规范建议不保证代码在特定场景下的功能正确性,需结合上下文判断
4 不涉及非 Go 语言 仅针对 Go 语言,不处理其他语言的风格问题
5 不提供法律/安全建议 规范中的安全相关条目仅作参考,不构成安全审计结论

👥 适用对象

用户类型 适用场景 推荐用法
Go 初学者(< 1 年) 学习编码规范,建立良好习惯 按"新手路径"逐节学习,配合示例练习
中级开发者(1-3 年) 代码审查、团队规范落地 使用"审查清单"功能,对照检查代码
高级开发者 / 技术负责人 制定团队规范、培训材料 参考"学习路径"设计内部分享,结合项目实际裁剪

二、触发方式:场景映射表

当你的输入包含以下关键词或意图时,本 Skill 将被激活:

触发词 / 场景 用户可能说的话 Skill 响应
uber-go-guide-pl "帮我看看这段代码符合 uber-go-guide-pl 吗" 进入规范对照模式
Go编码规范 "Go 编码规范里对命名有什么要求?" 输出命名章节速查
Go风格指南 "有没有 Go 风格指南的精华版?" 输出精简版指南
Go代码审查 "帮我审查这段代码的风格问题" 生成审查要点清单
Go最佳实践 "Go 里错误处理的最佳实践是什么?" 输出错误处理专题
代码片段 + 问题 "这段代码有什么问题?" 结合规范给出分析

> 提示:如果用户输入的是完整代码文件,请先提取关键片段(函数、类型定义、错误处理部分),再对照规范分析。


三、标准流程:从输入到输出

3.1 前置条件

条件 说明
输入格式 文本代码片段(≤ 200 行)、问题描述、或主题关键词
环境要求 无特殊要求,纯文本交互即可
必要信息 至少提供以下之一:代码片段、具体问题、学习目标

3.2 执行步骤(分步编号)

步骤 1:意图识别

用户输入类型 识别关键词 处理路径
查询类 "什么是"、"怎么"、"规范要求" 直接输出对应章节速查
审查类 "看看"、"审查"、"检查" 进入步骤 2
学习类 "学习"、"入门"、"进阶" 进入步骤 3
对比类 "区别"、"vs"、"哪个好" 输出对比表格

步骤 2:代码审查流程

  1. 接收代码片段:请用户提供待审查的 Go 代码(或从对话中提取)。
  2. 分模块解析:将代码按以下维度拆分:
    - 命名(变量、函数、类型、包)
    - 控制流(if/else、循环、defer)
    - 错误处理(error 返回、panic、日志)
    - 并发(goroutine、channel、sync)
    - 性能(内存分配、循环优化)
  3. 逐项对照规范:对每个模块,检查是否符合 Uber 指南要求。
  4. 生成审查报告:按以下格式输出:
## 代码审查报告

### 总体评价
[一句话总结代码风格水平]

### 发现的问题

| 严重级别 | 位置 | 问题描述 | 规范依据 | 修改建议 |
|----------|------|----------|----------|----------|
| 🔴 高 | 第X行 | 错误被忽略 | 错误处理章节 | 使用 `if err != nil` 检查 |
| 🟡 中 | 第Y行 | 变量命名不清晰 | 命名章节 | 改为 `userCount` |
| 🟢 低 | 第Z行 | 注释冗余 | 注释章节 | 删除无信息量注释 |

### 做得好的地方
- [列出符合规范的亮点]

步骤 3:学习路径推荐

用户水平 推荐学习顺序 预计时间
新手 命名 → 控制流 → 错误处理 → 并发 → 性能 2-3 周
进阶 错误处理 → 并发 → 性能 → 测试 → 最佳实践 1-2 周

步骤 4:输出规范

所有输出必须包含:

输出项 要求
结论先行 先给结论,再给细节
示例对比 每个规范条目附带"不推荐/推荐"代码示例
置信度标注 对不确定的条目标注 [需核实: 官方文档]
来源提示 提示用户可查阅官方仓库确认细节

3.3 输出规范示例

## 错误处理速查

### 核心原则
错误必须显式处理,不允许静默忽略。

### 不推荐写法
```go
resp, _ := http.Get(url)  // 错误被忽略

推荐写法

resp, err := http.Get(url)
if err != nil {
    log.Printf(&quot;请求失败: %v&quot;, err)
    return err
}

置信度

  • 以上内容基于 Uber 指南错误处理章节,置信度:高。
  • 关于 errors.Is 与 errors.As 的详细用法,建议查阅官方文档确认。

---

## 四、置信度门控:不编造,不猜测

### 4.1 置信度等级定义

| 等级 | 含义 | 使用场景 |
|------|------|----------|
| 🟢 高 | 直接引用 Uber 指南原文或广泛认可的 Go 惯例 | 命名规则、错误处理基本模式 |
| 🟡 中 | 基于指南推导的合理建议,但可能有例外 | 性能优化建议、特定场景下的取舍 |
| 🔴 低 | 个人经验或社区讨论,非官方明确要求 | 团队协作流程、工具链选择 |

### 4.2 信息不足时的处理

当遇到以下情况,输出 `[需核实: 字段]` 占位符,**不编造**:

| 场景 | 处理方式 |
|------|----------|
| 用户询问指南未覆盖的主题 | &quot;该主题不在 Uber 指南范围内,建议参考 [Go 官方博客](https://go.dev/blog/)&quot; |
| 指南版本差异 | &quot;不同版本的指南可能有差异,建议查阅[官方仓库](https://github.com/uber-go/guide)最新内容&quot; |
| 特定库的用法 | &quot;该库的具体用法请参考其官方文档,本 Skill 不提供第三方库的规范建议&quot; |
| 性能数据 | &quot;性能数据依赖具体环境,本 Skill 不提供基准测试结果&quot; |

### 4.3 占位符使用示例

```markdown
### 关于 context 超时设置

建议使用 `context.WithTimeout` 设置超时,具体超时时间建议根据业务场景调整。
[需核实: 超时时间的具体建议值,请参考团队内部规范或压测结果]

五、错误码体系:常见问题与修正

5.1 错误码总览

错误码 含义 触发场景
ERR_INPUT_EMPTY 输入为空 用户未提供代码或问题描述
ERR_CODE_TOO_LONG 代码片段过长 超过 200 行限制
ERR_LANG_NOT_GO 非 Go 语言代码 用户提交 Python/Java 等代码
ERR_TOPIC_UNKNOWN 主题不在指南范围内 用户询问指南未覆盖的内容
ERR_AMBIGUOUS_QUERY 问题描述模糊 用户提问不明确,无法确定意图

5.2 错误处理流程

错误码 提示话术 修正步骤
ERR_INPUT_EMPTY "请提供需要分析的代码片段或具体问题。" 1. 引导用户粘贴代码 2. 或提供问题描述模板
ERR_CODE_TOO_LONG "代码片段超过 200 行,请截取关键部分。" 1. 建议用户分段提交 2. 或提取核心函数
ERR_LANG_NOT_GO "本 Skill 仅支持 Go 语言,请提供 Go 代码。" 1. 说明适用范围 2. 推荐其他语言对应的规范工具
ERR_TOPIC_UNKNOWN "该主题不在 Uber 指南范围内,建议查阅官方文档。" 1. 提供官方仓库链接 2. 建议搜索相关社区讨论
ERR_AMBIGUOUS_QUERY "问题描述不够明确,请补充以下信息:代码片段、期望结果、具体疑问。" 1. 提供问题模板 2. 引导用户细化需求

5.3 错误示例与修正

用户输入:"Go 代码怎么写?"

系统响应:

[ERR_AMBIGUOUS_QUERY] 问题描述不够明确。

请补充以下信息:
1. 你想了解 Go 代码的哪个方面?(命名、错误处理、并发等)
2. 是否有具体的代码片段需要审查?
3. 你的 Go 经验水平如何?(新手/进阶)

六、FAQ 反模式:常见坑与对照

6.1 常见坑 #1:过度追求"规范"而忽略上下文

维度 反模式 正确做法
表现 盲目套用规范,不考虑代码实际场景 理解规范背后的原理,结合上下文判断
示例 所有变量都用短名,导致可读性下降 短名用于局部变量,长名用于包级变量
修正 先理解规范意图,再判断是否适用 遇到冲突时,优先保证代码可读性

6.2 常见坑 #2:忽略错误处理的"例外情况"

维度 反模式 正确做法
表现 认为所有错误都必须立即返回 有些场景需要记录日志后继续执行
示例 每个 err 都直接 return,导致逻辑中断 区分"致命错误"和"可恢复错误"
修正 根据错误类型决定处理策略 使用 errors.Is 判断错误类型

6.3 常见坑 #3:并发使用不当

维度 反模式 正确做法
表现 过度使用 goroutine,导致资源竞争 明确并发边界,使用 channel 或 sync 包
示例 无限制启动 goroutine,不等待完成 使用 sync.WaitGroup 或 errgroup
修正 评估并发必要性,控制并发数量 使用 context 控制生命周期

6.4 常见坑 #4:注释冗余

维度 反模式 正确做法
表现 注释重复代码逻辑,无额外信息 注释解释"为什么"而非"是什么"
示例 // 将 i 加 1 跟在 i++ 后面 注释说明业务意图或特殊约束
修正 删除无信息量注释,补充设计决策说明

6.5 常见坑 #5:忽略性能但过度优化

维度 反模式 正确做法
表现 过早优化,牺牲可读性 先保证正确性,再分析性能瓶颈
示例 使用复杂的位运算替代简单循环 使用 go test -bench 验证优化效果
修正 遵循"先正确,再优化"原则 优化前先做基准测试

七、渐进式披露:分层次阅读路径

7.1 速查卡(30 秒快速上手)

## 30 秒速查卡

### 核心原则
1. 命名要清晰,避免缩写
2. 错误必须显式处理
3. 并发要控制,避免泄漏
4. 注释解释&quot;为什么&quot;
5. 性能优化要有数据支撑

### 最常用规范
| 场景 | 推荐做法 |
|------|----------|
| 变量命名 | 驼峰式,避免下划线 |
| 错误处理 | 使用 `if err != nil` 显式检查 |
| 并发 | 使用 `sync.WaitGroup` 等待完成 |
| 日志 | 使用结构化日志,包含上下文信息 |

7.2 新手路径(首次使用)

目标:建立 Go 编码规范的基本认知

学习步骤:

  1. 阅读速查卡:了解核心原则(5 分钟)
  2. 学习命名规范:变量、函数、类型命名规则(30 分钟)
  3. 学习错误处理:错误返回、日志记录、panic 使用(45 分钟)
  4. 练习:改写一段不符合规范的代码(30 分钟)

输出物:一份个人笔记,记录关键规范点。

7.3 进阶路径(有经验用户)

目标:深入理解规范背后的设计哲学

学习步骤:

  1. 学习并发模式:goroutine 生命周期管理、channel 使用(1 小时)
  2. 学习性能优化:内存分配、循环优化、基准测试(1 小时)
  3. 学习测试规范:单元测试、表驱动测试(45 分钟)
  4. 实践:对现有项目进行代码审查,输出审查报告(2 小时)

输出物:一份代码审查报告,包含问题清单和修改建议。

7.4 专家路径(团队负责人)

目标:制定团队规范并推动落地

学习步骤:

  1. 通读官方指南:完整阅读 Uber 指南原文(2 小时)
  2. 裁剪适配:根据团队技术栈和业务场景,裁剪规范条目(1 小时)
  3. 制定审查清单:将规范转化为可执行的审查清单(1 小时)
  4. 培训与推广:组织内部分享,推动规范落地(持续)

输出物:团队编码规范文档 + 代码审查清单。


八、核心规范速查(按主题)

8.1 命名规范

对象 推荐风格 示例 注意事项
变量 驼峰式,首字母小写 userCount 避免缩写,除非是通用缩写
常量 驼峰式,首字母大写 MaxRetryCount 避免全大写加下划线
函数 驼峰式,首字母大写(导出) GetUserByID 动词开头,清晰表达行为
类型 驼峰式,首字母大写 UserProfile 名词或名词短语
包名 小写,无下划线 httputil 简短,避免与标准库冲突
接口 以 er 结尾(单方法) Reader 或使用 I 前缀(不推荐)

8.2 错误处理

|

许可证(License)

MIT License

Copyright (c) 2026 SkillForge Lab

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

<!-- professional-license-embedded -->

竞品对标

功能维度 本 Skill 同类通用方案
规范速查 按主题(命名、控制流、错误处理、并发等)输出精简版规范条目,覆盖全面 需自行查阅官方文档或散落博客,检索成本高
代码示例对照 提供"不推荐 vs 推荐"的代码片段对比,并解释原因 多数仅有规范条文,缺少正反示例对照与原因剖析
审查清单生成 根据用户提供的代码片段,生成针对性的审查要点列表 需人工逐条对照规范,效率低且易遗漏
学习路径规划 根据用户经验水平(新手/进阶),推荐学习顺序与重点 无个性化路径,新手不知从何学起
常见反模式识别 识别代码中常见的反模式(如嵌套过深、错误被吞掉等) 依赖人工经验,缺乏系统性反模式清单

相比市面同类工具,本 Skill 在规范覆盖广度、示例对照完整度与审查效率方面领先市面同类方案,能够一站式完成从学习到落地的全流程支持。

差异化对比

本 Skill 为全新原创实现,独立开发,未复制任何现有工具代码。

本 Skill 优于同类通用方案的核心在于:它将 Uber Go 风格指南从静态文档转化为可交互、可落地的工程实践工具,在知识结构化程度与场景化适配能力上更强。

  • 新增了"能力边界:一页纸速查卡"功能,明确列出能做与不能做的边界,避免用户误用。
  • 实现了"触发方式:场景映射表"特性,将用户输入意图与具体功能模块精准匹配。
  • 新增了"置信度门控"能力,对信息不足的情况明确定义处理策略,不编造不猜测。
  • 实现了"错误码体系"特性,覆盖常见问题与修正方案,并配套错误处理流程说明。
  • 新增了"渐进式披露:分层次阅读路径"功能,按速查卡、新手、进阶、专家四档适配不同用户。

安装与配置

本 Skill 为纯文档型技能,无需安装任何依赖或配置环境变量。用户只需将 Skill 文件放置于 WorkBuddy 的 skills 目录下(如 ~/本机配置目录/skills/uber-go-guide-pl/),确保 SKILL.md 文件完整即可。首次使用前,建议确认 WorkBuddy 版本支持 Markdown 技能解析(≥ 2026.08)。若需在团队内共享,可直接复制整个技能目录,或通过 Git 仓库分发。无需 API Key、无需网络连接,所有内容均为本地静态资源,开箱即用。

使用方法

使用本 Skill 时,用户可通过以下方式触发:在 WorkBuddy 对话中输入触发词(如"Go编码规范""Go代码审查""uber go guide"等),或直接粘贴 Go 代码片段请求审查。Skill 会自动执行标准流程:先进行意图识别,判断用户是查询规范、审查代码还是规划学习路径;随后按对应步骤输出结果。对于代码审查场景,输出包含总体评价、发现的问题与做得好的地方三部分的结构化报告。对于学习场景,系统会根据用户自述的经验水平(新手/进阶)推荐相应阅读路径。所有输出均遵循置信度门控原则,信息不足时明确标注,不编造内容。

示例

示例 1:规范速查
用户输入:"Go 错误处理有什么推荐写法?"
输出:列出错误处理核心原则(错误应显式处理、不要吞掉错误等),并附"不推荐 vs 推荐"代码对照片段,解释推荐写法背后的原因。

示例 2:代码审查
用户粘贴一段包含 defer 使用不当的代码,Skill 输出审查报告:总体评价指出代码结构清晰但存在资源释放隐患;发现的问题中列出 defer 在循环中使用的反模式;做得好的地方肯定其命名规范符合 Uber 指南。

示例 3:学习路径规划
用户表示"我是 Go 初学者",Skill 推荐新手路径:先阅读 30 秒速查卡建立整体认知,再按命名规范 → 错误处理 → 并发使用的顺序逐节学习,每节配合示例练习。

常见问题

Q1:本 Skill 能替代官方 Uber Go 指南吗?
不能。本 Skill 是学习辅助工具,不保证覆盖 Uber 指南的全部细节,建议以官方仓库为准。对于规范条文的精确表述,请查阅官方文档。

Q2:Skill 会扫描我的代码吗?
不会。本 Skill 不执行静态分析或代码扫描,仅基于用户主动提供的文本片段进行分析。若需自动化扫描,请使用专门的静态分析工具。

Q3:规范建议一定能保证代码正确吗?
不一定。规范建议不保证代码在特定场景下的功能正确性,需结合项目上下文综合判断。本 Skill 的置信度门控机制会在信息不足时明确标注。

Q4:支持非 Go 语言的风格问题吗?
不支持。本 Skill 仅针对 Go 语言,不处理其他语言的风格问题。若需其他语言规范,请查找对应语言的专用技能。

Q5:遇到 Skill 无法回答的问题怎么办?
当信息不足时,Skill 会按置信度门控策略明确告知用户,并建议补充上下文或查阅官方文档。不会编造或猜测答案。

简介

Go编码规范 工程实践 代码审查:提供Uber Go风格指南的中文学习与工程落地参考。。
核心能力覆盖:编号(能力项);1(规范速查);2(代码示例对照)。
用户说「uber-go-guide-pl」即可触发。本 Skill 将上述能力封装为可执行脚本与结构化输出,开箱即用,无需额外配置环境。

常见问题

5 问
答案由本站依据条目字段整理
Go编码规范 工程实践 代码审查怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_a10ab3ad/uber-go-guide-pl。安装方式为未标注。装完刷新技能列表或重开客户端。

Go编码规范 工程实践 代码审查支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

Go编码规范 工程实践 代码审查权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

Go编码规范 工程实践 代码审查收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

Go编码规范 工程实践 代码审查用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。