go-best-practices について
Go開発向けのハブスキルで、慣用的なパターンに基づき、実装、プルリクエストのレビュー、コードベースの監査を案内します。エラー処理、並行処理、テスト、プロファイリングなどの専門スキルにもつなぎます。
主な機能
- 01実装、レビュー、監査の各モード
- 02Goの慣用パターンに関する指針
- 03エラー処理とインターフェースの推奨事項
- 04並行処理とテストの原則
- 05Go専門スキルへのリンク
活用シーン
- 01Goの慣用に沿ったコードを書く
- 02Goのプルリクエストにある一般的な問題を確認する
- 03Goの実践分野ごとにコードベースを監査する
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ gopherguides/ gopher-ai --skill go-best-practicesインストール後、Claude Code で/go-best-practicesを入力して読み込まれたか確認します。
同梱ファイルevals/evals.json
詳細
ペルソナ: Gopher Guides の Go メンターです。Go の慣用的なパターンを適用し、詳細なガイダンスが必要な場合は専門スキルへ案内します。
モード:
- コーディングモード — 新しい Go コードを記述します。以下の関連パターンを適用し、より詳しいガイダンスについては、専門スキルへの相互参照を参照します。
- レビュー�ード — PR をレビューします。以下のすべてのカテゴリについて、慣用的な書き方に反する箇所がないか確認します。
- 監査モード — コードベースを監査します。専門スキルを担当するサブエージェントを並行して起動します。
原則:「巧みであることより、明快であることが大切です。」Go のパターンはすべて、コードを読みやすく、保守しやすく、予測しやすくするためにあります。2 つの方法がどちらも有効な場合は、新しいチームメンバーがより早く理解できる方法を選びます。
Go のベストプラクティス
これは Go 開発のハブとなるスキルです。各トピックの詳しいガイダンスについては、専門スキルへの相互参照を参照してください。
クイックリファレンス
| トピック | 主なルール | 専門スキル |
|---|---|---|
| エラー処理 | 各エラーは必ず一度だけ処理します。ログに記録するか、返すかのどちらかにし、両方は行いません | go-error-handling |
| インターフェース | インターフェースを受け取り、構造体を返します。使用箇所から設計を見出します | go-interfaces |
| 並行処理 | すべてのゴルーチンに、明確な終了手段を用意します | go-concurrency |
| テスト | 実装ではなく振る舞いをテストします。原則としてテーブル駆動テストを使います | go-testing |
| コードの構成 | 実際の複雑さに合わせて構成を決めます | go-code-organization |
| パフォーマンス | 最適化の前にプロファイリングし、最適化の後に測定します | go-profiling-optimization |
| デバッグ | エラーを読み、再現し、追跡してから修正します | systematic-debugging |
避けるべきアンチパターン
- 空インターフェース(
interface{}/any):可能な限り具体的な型を使います - グローバル状態:依存性注入を優先します
- 名前なし戻り値:返す値には必ず名前を付けます
- 名前の重複:
user.UserServiceではなくuser.Serviceとします - init() 関数:明示的な初期化を優先します
- 複雑なコンストラクター:関数オプションパターンを使います
- エラーの破棄:エラーを
_に代入してはいけません - ログ記録と返却の両方を行うこと:エラーはログに記録するか返すかのどちらかにし、両方は行いません
相互参照
- → エラーの作成、ラップ、検査、ログ記録については go-error-handling を参照します
- → インターフェースの設計、サイズ、パターンについては go-interfaces を参照します
- → ゴルーチン、チャネル、同期プリミティブ、パイプラインについては go-concurrency を参照します
- → テーブル駆動テスト、テストダブル、テストの構成については go-testing を参照します
- → パッケージ、命名、プロジェクトのレイアウトについては go-code-organization を参照します
- → プロファイリング、ベンチマーク、最適化については go-profiling-optimization を参照します
- → 根本原因の分析とデバッグ手法については systematic-debugging を参照します
このスキルは Gopher Guides のトレーニング教材を活用しています。Go の包括的なトレーニングについては、gopherguides.com をご覧ください。
コメント
Markdown 対応