mcpField
G
golang-base-practices

golang-base-practices

github.com/cexll開発446 回インストール40 週間前に更新
リポジトリ

golang-base-practices について

Go のコード生成、レビュー、リファクタリングに向けた開発ガイドです。53 のルールを優先度順に整理し、例と参考資料を掲載しています。

主な機能

  1. 01優先度別の53ルール
  2. 02フレームワークとデータベースの指針
  3. 03エラー処理と並行処理の実践
  4. 04テストと性能改善の提案
  5. 05例と参考資料

活用シーン

  1. 01Go プロジェクトやマイクロサービスの開始
  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 開発の包括的なベストプラクティスガイドです。Effective Go、Google Go Style Guide、Uber Go Style Guide、Go Code Review Comments を参考にした 53 のルールが含まれています。

適用するタイミング

以下の場合に、これらのガイドラインを参照してください。

  • 新しい Go プロジェクトやマイクロサービスを作成するとき
  • API インターフェース(REST/gRPC)を構築するとき
  • データベース操作やマイグレーションを行うとき
  • コードレビューやリファクタリングを実施するとき
  • パフォーマンスと並行処理を最適化するとき
  • テストカバレッジを改善するとき

優先度別のルールカテゴリ

優先度カテゴリ影響度プレフィックス
1フレームワークの選択CRITICALframework-
2データベースと ORMCRITICALdb-
3DDD プロジェクト構成HIGHddd-
4エラー処理HIGHerror-
5並行処理パターンHIGHconcurrency-
6Go らしい記述MEDIUMidiomatic-
7テストプラクティスCRITICALtesting-
8パフォーマンス最適化MEDIUMperformance-
9Lint とツールチェーンMEDIUMlint-

クイックリファレンス

1. フレームワークの選択(CRITICAL)
  • framework-gin-simple - シンプルなプロジェクトには Gin を使用します
  • framework-kratos-complex - 複雑なマイクロサービスには Go-Kratos を使用します
  • framework-middleware - ミドルウェアの設計パターン
  • framework-graceful-shutdown - サーバーのグレースフルシャットダウン
2. データベースと ORM(CRITICAL)
  • db-gorm-setup - GORM の初期化と設定
  • db-gorm-hooks - GORM Hook の使用ガイドライン
  • db-gorm-transactions - トランザクション処理のパターン
  • db-goose-migrations - Goose によるデータベースマイグレーション
  • db-connection-pool - コネクションプールの設定
3. DDD プロジェクト構成(HIGH)
  • ddd-project-layout - 標準的なプロジェクトディレクトリ構成
  • ddd-domain-layer - ドメイン層の設計
  • ddd-application-layer - アプリケーション層の設計
  • ddd-infrastructure-layer - インフラストラクチャ層の設計
  • ddd-interface-layer - インターフェース層の設計
  • ddd-dependency-injection - 依存性注入のパターン
4. エラー処理(HIGH)
  • error-wrap-context - コンテキストを付加したエラーのラップ
  • error-sentinel - センチネルエラーの定義
  • error-custom-types - カスタムエラー型
  • error-handling-check - エラーの戻り値を必ず確認する
  • error-api-response - API エラーレスポンスの標準
  • error-panic-recover - Panic と recover の使用ガイドライン
5. 並行処理パターン(HIGH)
  • 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 らしい記述(MEDIUM)
  • idiomatic-naming - 命名規則
  • idiomatic-comment - ドキュメントコメントのガイドライン
  • idiomatic-interface - インターフェースの設計(小さなインターフェースを優先)
  • idiomatic-receiver - Receiver の命名と選択
  • idiomatic-struct-init - Struct の初期化
  • idiomatic-functional-options - Functional Options パターン
  • idiomatic-defer - defer の使用ガイドライン
  • idiomatic-slice-map - Slice と Map の操作
  • idiomatic-zero-value - ゼロ値の活用
  • idiomatic-embedding - 型の埋め込み
  • idiomatic-blank-identifier - ブランク識別子の使用
7. テストプラクティス(CRITICAL)
  • testing-coverage-99 - テストカバレッジ 99% を目標にする
  • testing-table-driven - テーブル駆動テスト
  • testing-mock - モックとインターフェースによる抽象化
  • testing-helper - テストヘルパー関数のガイドライン
  • testing-benchmark - ベンチマークテスト
  • testing-integration - 結合テストの標準
  • testing-testify - testify アサーションライブラリの使用
8. パフォーマンスの最適化(中)
  • performance-strconv - fmt の代わりに strconv を使用する
  • performance-prealloc - コンテナを事前に割り当てる
9. Lint とツールチェーン(中)
  • lint-golangci - golangci-lint の設定
  • lint-gofmt - コードのフォーマット
  • lint-govet - 静的解析
  • lint-staticcheck - 高度な静的チェック
  • lint-revive - カスタマイズ可能なリンター

使用方法

詳しい説明とコード例については、rules/ ディレクトリ内の各ルールファイルを参照してください。

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

各ルールファイルには、以下が含まれています。

  • ルールの説明と重要性
  • 分析付きの不適切な例
  • 解説付きの適切な例
  • 補足情報と参考資料

基本原則

  1. KISS - シンプルさを保ち、過剰な設計を避けます
  2. YAGNI - 現時点で必要なものだけを実装します
  3. 暗黙より明示 - コードの意図を明確にします
  4. すべてのエラーを処理する - エラーの戻り値を決して無視しません
  5. テストカバレッジ99% - 高品質なコードの基盤です

コメント