name: go-sdk-specialist description: 使用地道模式进行Go SDK开发 allowed-tools:
- Read
- Write
- Edit
- Glob
- Grep
- Bash
Go SDK专家技能
概述
此技能专注于使用正确的模块版本控制、基于上下文的取消机制和Go风格错误处理模式来开发地道的Go SDK。
能力
- 使用正确的模块结构设计Go SDK架构
- 实现基于上下文的取消和超时控制
- 应用带有错误包装的Go错误处理模式
- 遵循语义化版本控制(semver)配置go.mod版本管理
- 为配置设计函数式选项模式
- 实现基于接口的设计以提高可测试性
- 配置具有结构化输出的适当日志记录
- 安全地支持并发操作
目标流程
- 多语言SDK策略
- SDK架构设计
- SDK测试策略
集成点
- Go模块(go.mod)
- 使用testify进行go test
- 使用golangci-lint确保代码质量
- 使用pkg.go.dev生成文档
- 使用goreleaser进行发布
输入要求
- API规范
- 模块路径(例如:github.com/org/sdk)
- 最低Go版本
- 并发要求
- 错误处理偏好
输出产物
- Go模块源代码
- go.mod和go.sum文件
- 测试文件(*_test.go)
- 位于examples/目录下的示例
- 包含安装说明的README文件
- 兼容GoDoc的文档
使用示例
skill:
name: go-sdk-specialist
context:
apiSpec: ./openapi.yaml
modulePath: github.com/myorg/sdk-go
goVersion: "1.21"
useGenerics: true
errorWrapping: true
functionalOptions: true
最佳实践
- 使用函数式选项进行配置
- 接受接口,返回结构体
- 使零值有用
- 使用包装显式处理错误
- 使用context.Context进行取消操作
- 保持包专注且小巧