mcpField
G
golang-base-practices

golang-base-practices

github.com/cexll开发446 次安装40 周前更新
代码仓库

关于 golang-base-practices

面向 Go 开发者的实践指南,涵盖代码生成、审查与重构。53 条规则按优先级组织,并附有示例和参考资料。

主要功能

  1. 0153 条分优先级规则
  2. 02涵盖框架与数据库实践
  3. 03涵盖错误处理和并发
  4. 04包含测试与性能建议
  5. 05提供示例及参考资料

适用场景

  1. 01创建 Go 项目或微服务
  2. 02审查代码并进行重构
  3. 03设计数据库操作与迁移
  4. 04改进测试覆盖和并发代码

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/cexll/golang-base-practices-skills --skill golang-base-practices

安装后在 Claude Code 中输入/golang-base-practices确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
rules/
concurrency-sync-primitives.md
concurrency-channel-size.md
db-goose-migrations.md
concurrency-goroutine-lifecycle.md
concurrency-context-cancel.md
db-connection-pool.md
concurrency-errgroup.md
concurrency-race-detection.md
concurrency-channel-patterns.md
db-gorm-transactions.md
error-api-response.md
ddd-interface-layer.md
ddd-project-layout.md
ddd-domain-layer.md
db-gorm-setup.md
ddd-infrastructure-layer.md
db-gorm-hooks.md
ddd-application-layer.md
ddd-dependency-injection.md
error-custom-types.md
error-handling-check.md
framework-gin-simple.md
error-sentinel.md
error-wrap-context.md
framework-kratos-complex.md
framework-middleware.md
idiomatic-blank-identifier.md
error-panic-recover.md
framework-graceful-shutdown.md

详细介绍

Golang 基础实践

全面的 Go 开发最佳实践指南,按优先级组织,适用于代码生成、审查和重构。包含 53 条规则,参考了 Effective Go、Google Go Style Guide、Uber Go Style Guide 和 Go Code Review Comments。

适用场景

在以下场景中参考这些指南:

  • 创建新的 Go 项目或微服务
  • 构建 API 接口(REST/gRPC)
  • 执行数据库操作和迁移
  • 进行代码审查和重构
  • 优化性能和并发
  • 提高测试覆盖率

按优先级划分的规则类别

优先级类别影响前缀
1框架选择严重framework-
2数据库和 ORM严重db-
3DDD 项目结构高ddd-
4错误处理高error-
5并发模式高concurrency-
6Go 惯用实践中idiomatic-
7测试实践严重testing-
8性能优化中performance-
9Lint 和工具链中lint-

快速参考

1. 框架选择(严重)
  • framework-gin-simple - 简单项目使用 Gin
  • framework-kratos-complex - 复杂微服务使用 Go-Kratos
  • framework-middleware - 中间件设计模式
  • framework-graceful-shutdown - 优雅关闭服务器
2. 数据库和 ORM(严重)
  • db-gorm-setup - GORM 初始化和配置
  • db-gorm-hooks - GORM Hook 使用指南
  • db-gorm-transactions - 事务处理模式
  • db-goose-migrations - 使用 Goose 进行数据库迁移
  • db-connection-pool - 连接池配置
3. DDD 项目结构(高)
  • ddd-project-layout - 标准项目目录结构
  • ddd-domain-layer - 领域层设计
  • ddd-application-layer - 应用层设计
  • ddd-infrastructure-layer - 基础设施层设计
  • ddd-interface-layer - 接口层设计
  • ddd-dependency-injection - 依赖注入模式
4. 错误处理(高)
  • error-wrap-context - 使用上下文包装错误
  • error-sentinel - 哨兵错误定义
  • error-custom-types - 自定义错误类型
  • error-handling-check - 始终检查错误返回值
  • error-api-response - API 错误响应规范
  • error-panic-recover - Panic 和 recover 使用指南
5. 并发模式(高)
  • concurrency-goroutine-lifecycle - Goroutine 生命周期管理
  • concurrency-channel-patterns - Channel 使用模式
  • concurrency-channel-size - Channel 缓冲区大小选择
  • concurrency-context-cancel - Context 取消信号传播
  • concurrency-errgroup - errgroup 并发控制
  • concurrency-sync-primitives - sync 包原语的使用
  • concurrency-race-detection - 竞态条件检测
6. Go 惯用实践(中)
  • idiomatic-naming - 命名约定
  • idiomatic-comment - 文档注释指南
  • idiomatic-interface - 接口设计(优先使用小接口)
  • idiomatic-receiver - 接收者命名和选择
  • idiomatic-struct-init - 结构体初始化
  • idiomatic-functional-options - 函数式选项模式
  • idiomatic-defer - defer 使用指南
  • idiomatic-slice-map - Slice 和 Map 操作
  • idiomatic-zero-value - 零值的使用
  • idiomatic-embedding - 类型嵌入
  • idiomatic-blank-identifier - 空标识符的使用
7. 测试实践(严重)
  • testing-coverage-99 - 99% 测试覆盖率目标
  • testing-table-driven - 表驱动测试
  • testing-mock - Mock 和接口抽象
  • testing-helper - 测试辅助函数指南
  • testing-benchmark - 基准测试
  • testing-integration - 集成测试规范
  • testing-testify - testify 断言库的使用
8. 性能优化(中)
  • performance-strconv - 使用 strconv 代替 fmt
  • performance-prealloc - 容器预分配
9. Lint 与工具链(中)
  • lint-golangci - golangci-lint 配置
  • lint-gofmt - 代码格式化
  • lint-govet - 静态分析
  • lint-staticcheck - 高级静态检查
  • lint-revive - 可自定义的 linter

如何使用

如需详细说明和代码示例,请查阅 rules/ 目录中的具体规则文件:

rules/framework-gin-simple.md
rules/db-gorm-setup.md
rules/testing-table-driven.md

每个规则文件都包含:

  • 规则说明及其重要性
  • 带有分析的错误示例
  • 带有说明的正确示例
  • 补充背景和参考资料

核心原则

  1. KISS - 保持简单,避免过度设计
  2. YAGNI - 仅实现当前需要的功能
  3. 显式优于隐式 - 代码意图应清晰明了
  4. 处理所有错误 - 绝不忽略错误返回值
  5. 99% 测试覆盖率 - 高质量代码的基础

评论

支持 Markdown