SuperAPI AI 工具集

go-architecture

编程与开发

查看项目

更新于 10-26 16:21

技能介绍

Go Architecture 是一个用于组织和审查 Go 后端服务架构的技能,提供“有主见”且针对 2026 年现状的指导。其核心理念是优先使用标准库和小型可组合库,而不是重型框架。

用途

该技能主要在以下场景使用:搭建新的 Go 模块或服务(包括目录结构、cmd/ 与 internal/ 的布局);选择 HTTP 路由方案(标准库 net/http ServeMux、chi、echo/gin/fiber);选择数据库层(sqlc + pgx、GORM)或处理查询连接;进行依赖装配(构造函数注入、不使用 DI 框架);审查已有 Go 服务的结构或架构问题。

主要能力与核心原则

技能提供一份决策地图,按问题引导用户加载对应的参考文档:文件与包放置位置对应 project-layout.md,HTTP 路由选择对应 http-routing.md,数据库访问对应 database-access.md,依赖注入对应 dependency-injection.md,需要完整可运行示例时对应 templates/rest-service.md。

核心原则包括:标准库优先——自 Go 1.22 起 net/http.ServeMux 支持方法匹配与路径通配符(如 GET /posts/{id} 与 req.PathValue("id")),多数服务不再需要路由框架(来源:https://go.dev/blog/routing-enhancements);internal/ 是服务逻辑的默认位置,服务端二进制自包含,包放在 internal/ 下、二进制放在 cmd/ 下,官方并无 pkg/ 强制要求,不要盲目照搬(来源:https://go.dev/doc/modules/layout);默认采用构造函数注入,不使用 DI 框架,将依赖作为接口参数传给 New… 构造函数并在 main 中装配;类型安全 SQL 是 2026 年的默认选择,sqlc 从原始 SQL 生成惯用 Go 代码,运行在 pgx 驱动之上用于 PostgreSQL,GORM 仍可用但在新服务中相对式微(来源:https://docs.sqlc.dev 与 https://pkg.go.dev/github.com/jackc/pgx/v5)。

使用方式

技能建议的工作流为:先探索现有目录树,不要预设布局;从上文决策地图加载相关参考;在写代码前对照来源 URL 交叉核对版本敏感的断言(路由、sqlc/pgx),因为 API 会变化;新项目从 templates/rest-service.md 创建脚手架;保持文件小、接口分离(交由 fuse-solid:solid-go 处理);任何代码变更后使用 go-testing-quality 与 sniper 验证。

适用场景与边界

该技能刻意将范围限定在架构、结构、路由与数据库装配上。测试、基准、模糊测试、覆盖率应使用 go-testing-quality;SOLID 行数限制与接口位置约束应使用 fuse-solid:solid-go;非 Go 后端(Laravel、Next.js、Rust)应使用对应的专家技能;前端/UI 工作应使用 fuse-design 或相应框架专家。社区技能集 github.com/samber/cc-skills-golang 覆盖重叠的 Go 领域,当不确定某主题归属时,优先选择更具体的技能。

限制

该技能仅提供文档与工作流指导,不包含自动执行代码生成或架构重构的功能;具体版本行为需以所给来源链接为准;对 GORM 的取舍仅提供说明性细微差别,未给出量化结论。