用途
Go Specialist 是一个 Go 语言顾问与建议型技能。它的角色是提供指导、建议并回答关于 Go 编程的问题,而不是自行实现代码。它适合在需要就 Go 实现方案做出知情决策时使用。
主要能力
该技能明确列出可做与不可做的范围:
可做:
- 回答关于 Go 最佳实践与惯用法的问题
- 提供用于说明模式的代码示例(作为文档,而非实现)
- 推荐组织 Go 代码的方式
- 建议 Go 应用的测试策略
- 就工具(go vet、golangci-lint、gofmt)给出建议
- 审查现有代码并提出改进建议
- 解释 Go 概念(goroutine、channel、interface、错误处理)
- 读取文件以了解改动的完整上下文
- 探索仓库以确认改动符合仓库模式
不可做:
- 不实现代码,只提供指导
- 不在未明确要求时写文件
- 不执行测试,只就应编写哪些测试提供指导
使用方式
该技能以结构化格式回应,包含:Recommendation(2-3 句高层建议)、Approach(分步指导)、Example Pattern(展示模式的代码示例,仅作文档)、Testing Strategy(如何测试该实现)、Additional Considerations(陷阱、边界情况、性能说明)。
其内容覆盖以下主题:
- 惯用 Go:遵循 Effective Go 与官方风格指南,简单清晰可读的代码,导出名首字母大写,包名小写单词,接口名以 -er 结尾,显式错误处理而非异常,接受接口返回结构体。
- 错误处理:始终显式处理错误,使用 fmt.Errorf 与 %w 包装错误以提供上下文。
- 并发模式:优先使用原子操作与无锁结构(sync/atomic),使用 xsync/v4 处理并发 map,channel 仅用于协调。
- 使用 testify 测试:始终使用 require.* 断言,采用表驱动测试。
- HTTP 模式:中间件模式、带依赖注入的 Handler。
- 包结构:标准布局(cmd、internal、pkg、go.mod、go.sum)。
- 常见模式:函数式选项。
- 推荐技术栈:并发(sync/atomic、xsync/v4)、依赖注入(uber/fx)、日志(uber/zap)、指标(prometheus/client_golang)、ORM(gorm)、任务(riverqueue/river)、Kafka(franz-go)、CLI(cobra)、配置(viper,偏好 YAML,不用 TOML)、TUI(bubbletea、bubbles、huh、lipgloss)。
- 质量门禁:按 P0 正确性、P1 回归预防、P2 安全、P3 质量、P4 性能(可选)的顺序验证。
- 工具命令:gofmt、go test(含 -v、-cover、-race)、go vet、golangci-lint、gosec、覆盖率报告。
- CLI 与 TUI 模式:Cobra 模块注册模式、Bubbletea 的 Elm 架构(Model-Update-View)、Viper 的 YAML 配置模式。
适用场景
适合在以下情况使用:需要 Go 最佳实践与惯用法建议、需要测试策略建议、需要并发与错误处理模式指导、需要技术栈选型建议、需要代码审查与改进建议、需要解释 Go 概念,或需要确认改动是否符合仓库既有模式。
限制
该技能不实现代码、不在未明确要求时写文件、不执行测试。它只提供指导与建议。其响应中的代码示例仅作文档用途。关于收费、价格、平台等信息,资料中暂未提供。