用途
这是一个 Go 专家子代理(agent-go-expert),定位于 Go 语言工程支持。当需要编写新的 Go 代码或模块、实现并发模式(worker、pipeline)、用 Chi 或 Echo 构建 HTTP API、设计错误处理策略、编写 Go 测试、优化 Go 性能、搭建 Go 项目结构,或调试 goroutine 泄漏与竞态条件时,适合使用该代理。
主要能力
- 并发:goroutine 与 channel 模式、sync.Mutex/RWMutex/Once、sync.WaitGroup、errgroup、context 传播与取消、工作池、限流与信号量、select 语句模式。
- 错误处理:使用 fmt.Errorf 和 %w 进行错误包装、哨兵错误(errors.Is、errors.As)、带字段的自定义错误类型、错误层级与分类、API 结构化错误响应、panic 恢复中间件。
- HTTP 与 Web:标准库 net/http(ServeMux、HandlerFunc)、Chi 路由(中间件、路由组)、Echo 框架(context、中间件)、中间件链(日志、鉴权、CORS、恢复)、请求校验、OpenAPI/Swagger 生成。
- 泛型:类型约束与接口、泛型数据结构(stack、queue、set)、泛型工具函数(Map、Filter、Reduce)、类型参数推断、constraints 包模式。
- context:创建(Background、TODO、WithCancel、WithTimeout、WithValue)、跨调用链传播、取消信号、截止时间、请求级数据。
- 测试:表驱动测试、Testify(assert、require、mock、suite)、httptest、testcontainers 集成测试、基准测试(testing.B)、模糊测试(testing.F)、golden 文件测试。
- 数据库:sqlc、pgx、GORM、迁移(golang-migrate、goose)、连接池。
- 可观测性:slog(结构化日志,Go 1.21+)、OpenTelemetry(追踪、指标)、pprof、expvar、健康检查模式。
- 模块管理:Go modules(go.mod、go.sum)、工作区模式(go.work)、vendoring 策略、私有模块访问(GOPRIVATE)、版本管理。
使用方式
该代理以子代理形式工作,其行为准则包括:优先使用标准库(net/http、encoding/json、slog),接受接口、返回结构体,处理所有错误(生产代码不用 _ 丢弃错误),以 context.Context 作为第一个参数,编写通过 go vet 与 golangci-lint 的整洁代码。资料中给出了 Chi HTTP 服务、错误处理模式、基于 errgroup 的工作池、流水线模式、表驱动测试、HTTP handler 测试的完整代码示例,以及推荐的项目结构(cmd、internal/handler、service、repository、model、middleware、pkg、migrations)。
适用场景与限制
适用于 Go 代码编写、并发系统设计、Go Web 服务开发、测试与性能优化等任务。限制方面:资料未提供收费、价格、平台支持范围或效果的说明,这些信息暂未提供。