Agent Skills
返回列表
💻

Go 语言惯用法实战指南

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @kunlungrowth/go-idioms。

技能介绍

解决什么问题

很多开发者从 Java 或 Python 迁移到 Go 时,写出来的代码总带着一股“翻译腔”:过度设计接口、用异常捕获的思维处理错误、或者在使用 goroutine 时遭遇泄漏、死锁和数据竞争。这个技能专门针对这些“非 Go 味”的代码,帮你摆脱语言习惯的包袱,写出符合 Go 社区审美和工程规范的代码。

技能如何工作

该技能通过结构化的工作流,对代码和架构进行深度审查与重构建议:

  • 代码审查与反模式修正:识别诸如滥用 interface{}(Go 1.18+ 应使用 any)、到处加锁(应优先用 channel 通信)、过度抽象等反模式,并提供改写对照。
  • 错误处理与并发控制:规范 Go 1.13+ 的错误处理,包括哨兵错误和自定义错误类型;提供 errgroup、worker pool 和 pipeline 等并发模式的完整示例,并强调 context 在 goroutine 生命周期管理中的作用。
  • 接口设计与项目结构:遵循“接受接口,返回结构体”原则,指导接口在消费方定义。同时给出包拆分和命名(如使用单数名词)的工程建议。

适用边界与注意点

本技能聚焦于 Go 语言的核心惯用法和底层设计模式。它不适用于 Go 语法入门教学(建议先阅读 Tour of Go),也不会深入探讨特定 Web 框架(如 Gin、Echo 或 Fiber)的框架级最佳实践。它更适合作为你日常 Go 开发的“代码审查员”和架构顾问。

使用场景

  • 从 Java/Python 迁移到 Go,审查现有代码中的翻译腔和反模式,输出改写建议。
  • 开发 Go 服务时设计 goroutine/channel 并发流程,需要处理取消、超时和 worker pool。
  • 设计项目包结构与接口边界时,不确定接口定义在消费方还是实现方,需要 Go 惯用法建议。
  • 写 Go 库或服务时发现错误处理不清晰,需要按 Go 1.13+ 模式定义哨兵错误和自定义错误类型。

适合人员

  • 从 Java/Python 转向 Go 的工程师,希望消除代码中的翻译腔,掌握 if err != nil 与并发模型。
  • 负责 Go 服务后端开发的工程师,需要在请求链路中正确使用 context、errgroup 和 channel。
  • 正在搭建 Go 项目架构的技术负责人,需要确定包拆分、接口摆放和最小化设计。
  • 维护 Go 基础库或中间件的开发者,需要定义清晰的错误类型和并发安全行为。