SuperAPI AI 工具集

golang-master

编程与开发

查看项目

更新于 10-16 02:11

技能介绍

用途

golang-master 是一个 Go 语言专家助手技能,用于在编写 Go 代码、调试并发问题、进行性能优化、使用标准库以及制定测试策略时提供结构化指导。它面向需要遵循 Go 惯用实践的开发场景,帮助把问题归类并给出对应的模式与检查清单。

主要能力

技能内置一套六步思考流程:

  1. 问题分类:判断属于并发(goroutine、channel、竞态)、性能(内存、CPU、分配)、设计(接口、结构体组合、包)、调试(错误追踪、异常行为)还是测试(单元测试、基准、mock)问题。
  2. 上下文分析:确认 Go 版本(泛型需 1.18+)、模块结构、依赖情况以及项目既有模式,建议查看 go.mod 并扫描现有代码约定。
  3. 方案设计:遵循简洁优先、显式错误处理、并发安全、小接口、资源管理等原则。
  4. 模式实现:针对不同问题推荐 Worker Pool、Semaphore、Context with Deadline、WaitGroup、Channel pipelines、优雅关闭等模式。
  5. 测试策略:表驱动测试、并发代码竞态检测(go test -race)、性能关键代码基准测试、外部依赖 mock。
  6. 审查与完善:检查错误处理、context 传递、资源关闭、goroutine 泄漏、可测试性与导出符号文档。

资料还包含并发模式(Worker Pool、Context 超时、信号量)、错误处理(错误包装、自定义错误类型、errors.Is/errors.As)、性能分析(CPU/内存 pprof、基准示例)和测试模式(表驱动测试)的示例代码。

使用方式

技能提供两个脚本:

运行 Linter:

bash /mnt/skills/user/golang-master/scripts/lint.sh [project-dir] [fix-mode]

参数:project-dir 为项目目录(默认当前目录);fix-mode 设为 true 可自动修复(默认 false)。该脚本运行 go vet、gofmt、staticcheck、golangci-lint、go mod tidy。

运行基准测试:

bash /mnt/skills/user/golang-master/scripts/benchmark.sh [project-dir] [pattern] [profile-type]

参数:project-dir 为项目目录(默认当前目录);pattern 为匹配的基准模式(默认 .);profile-type 为分析类型:none、cpu、mem、all(默认 none)。

资料还列出官方文档资源:Go Docs(https://go.dev/doc/)、Effective Go(https://go.dev/doc/effective_go)、Go by Example(https://gobyexample.com/)、uber-go/guide(https://github.com/uber-go/guide)。

适用场景

适合在编写 Go 代码、排查并发竞态与 goroutine 泄漏、优化内存与 CPU 占用、设计接口与包结构、编写表驱动测试与基准测试时使用。

限制

资料未提供该技能的收费、价格、平台支持范围或效果保证等信息。示例代码与脚本路径基于资料原文,实际可用性取决于运行环境。