SuperAPI AI 工具集

go-core-idioms

编程与开发

查看项目

更新于 10-26 16:21

技能介绍

go-core-idioms 是一份针对 Go 1.27 的语言级惯用法指南,定位为编写或审查“顺序执行”Go 代码时使用的技能,不涉及并发编程。

用途 它用于在实现前约束代码风格与结构:错误如何创建、包装与检查,日志如何结构化输出,泛型与接口如何定义和放置。资料明确标注,凡是涉及 goroutine、channel、errgroup 或 context 取消的内容,应改用 go-concurrency 技能。

主要能力

  1. 错误处理:坚持显式的 if err != nil,禁止用 _ = err 丢弃错误;使用 %w 而非 %v 包装以保留错误链,便于 errors.Is/As/AsType 检查;支持 errors.Join 及 Go 1.26 引入的类型安全泛型版 errors.AsType。
  2. 结构化日志:基于标准库 log/slog,涵盖 handler 选择、属性(attrs)、分组(groups)与 LogValuer;建议在热点路径使用 slog.LogAttrs 避免分配。
  3. 泛型:类型参数、约束、Go 1.26 的自引用类型与 new(expr)、Go 1.27 的泛型方法。
  4. 接口与风格:接口应短小(一到三个方法)、定义在消费方而非实现方,遵循“接受接口、返回结构体”;默认使用值接收者,仅在需要修改或结构体较大时使用指针接收者;避免 Java 风格的 getter/setter 和 IFoo 前缀命名。
  5. 现代化工具:通过 go fix 自动应用 Go 1.26 的大量惯用法/API 修复器(1.27 继续增加),并配合 go vet 校验。

使用方式 资料规定了一套强制代理工作流:在任何实现之前,并行启动三个代理(每次一个 Agent 调用并命名):explore-codebase 梳理现有错误/日志/接口模式;research-expert 通过 Context7/Exa 核验最新 Go 文档;mcp__context7__query-docs 确认 errors 与 log/slog 等标准库签名。实现完成后运行 sniper 进行验证。此外还提供参考文档与模板,如 error-handling.md、slog-logging.md、generics-and-1.26.md、interfaces-and-style.md、error-patterns.md、slog-setup.md,并给出错误包装与 AsType 检查、slog JSON handler 的代码片段示例,以及 internal/user 与 internal/platform/logging 的目录结构示例。

适用场景 适合在编写或评审包级错误策略、接入结构化日志、设计泛型 API、确定接口放置位置与接收者类型,以及用 go fix 迁移到当前 Go 惯用法时使用。

限制 资料明确排除并发相关主题;未提供安装命令、收费方式、版本兼容范围之外的平台信息或效果数据,相关内容暂未提供。