用途:该技能定义了一套实用的 Go 工程约定,适用于编写新代码、重构、代码评审、架构决策、包设计与测试策略等场景。
主要能力:强调可测试性优先,依赖注入并保持逻辑纯粹;构造器采用 Config 输入、具体结构体输出,在 New 中校验与设默认值;错误作为契约,持久分支用哨兵错误,其余用 %w 或 errors.Join 包装;可复用包不隐藏全局状态、不默认打日志、无意外副作用;优先标准库,第三方包需证明其价值;覆盖率是信号而非证明,需测试边界与误用路径;遵循“接受接口、返回结构体”,接口通常由消费者定义;main.go 保持精简,遵循仓库既有布局;性能声明前先做基准测试,并发代码用 -race 运行;维护函数签名、配置形态、错误行为与文档注释等契约。
使用方式:执行实现工作时先检查仓库,阅读现有包布局、构造器、测试与错误约定;编码前先定义契约(包边界、配置形态、具体返回类型、哨兵错误、依赖接缝、context 与关闭预期);尽早编写或更新测试,从表驱动单元测试开始,输入密集代码加模糊测试,性能敏感路径加基准测试;实现最小可维护改动;完成检查:gofmt(如仓库使用则加 goimports)、运行相关 go test 目标、并发时运行 go test -race、声称性能提升时运行基准测试;最后核对文档、注释、配置默认值与错误行为是否与代码一致。参考文件按需加载,如 CONFIG.md、INTERFACES.md、ERRORS.md、LOGGING.md、TESTING.md、CONCURRENCY.md、LAYOUT.md、DOCUMENTATION.md、BENCHMARKS.md、REVIEW-CHECKLIST.md。
适用场景:Go 项目的新代码编写、重构、评审、包设计、服务与 CLI 开发、测试策略制定。
限制:该指南有意带有主观倾向,优先一致性与长期可维护性;若目标仓库有明确的本地约定,通常以本地约定为准。示例假定使用现代 Go 及 errors.Join、log/slog 等标准库特性,需在目标仓库支持的 Go 版本约束内应用。具体安装命令、收费与价格信息暂未提供。