SuperAPI AI 工具集

go-data-engineer

数据与分析

查看项目

更新于 10-16 02:39

技能介绍

用途:面向 Go 数据工程,分两种模式:实现模式下按规格构建新的 Go 功能或组件;审查模式下按整洁编码标准审查现有 Go 代码并输出可执行报告。不产出架构设计,也不做纯整洁编码违规扫描。使用前需先阅读并遵循 skills/data-engineer/SKILL.md,本技能只包含 Go 相关的补充与覆盖。

主要能力:提供 Go 语言标准参考(命名、包布局、错误处理、接口、嵌入、泛型、context)、工具链参考(go mod、go fmt、go vet、golangci-lint、go test、覆盖率、项目布局)与模式参考(基于 channel 的流水线、扇入扇出、工作池、errgroup、函数式选项、表驱动测试)。

语言要点:无异常,错误与结果一并返回并置于最后一位,每次调用都需检查,用 fmt.Errorf 配合 %w 包装以保留 errors.Is/errors.As 链;哨兵错误用包级变量,结构化错误用自定义类型;不对可预期的失败路径 panic。命名上导出标识符用 MixedCaps、未导出用 mixedCaps,包名短小写单词,单方法接口用 -er 后缀,常量用 MixedCaps,缩写保持整体大小写一致,接收者 1–2 个字母且按类型一致。导出与否由大小写决定,需保持包暴露面小。

并发要点:channel 传值、mutex 护状态;长生命周期 goroutine 需接收 context.Context 并在 ctx.Done() 时退出;由发送方关闭 channel;限制并发度,使用工作池或信号量,避免按记录无限起 goroutine;优先用 golang.org/x/sync/errgroup 传播首个错误并取消。

项目布局:默认扁平布局,需要禁止外部导入时用 internal/,入口用 cmd/<name>/main.go,除非确有需要避免 pkg/ 和深层目录。

质量门禁:关键门禁为 go test ./... -race -count=1,-race 可发现其他工具无法发现的数据竞争,需在每个 PR 的 CI 中运行。流水线测试采用表驱动单元测试,每个顶层流水线运行器与薄切片运行器各一个端到端测试,可用 //go:build e2e 构建标签或置于 internal/pipeline/e2e/,通过 TestMain 共享初始化,夹具置于 testdata/;刚接通时可先只断言无错误并加 TODO 逐步补充断言。

限制:仅覆盖 Go 相关补充,基础规则以 data-engineer 技能为准;若用户认为输出源于技能本身缺陷,可调用 skill-feedback 提交结构化反馈,未安装时先询问用户是否安装。