Agent skill · software engineering · affaan-m
golang-patterns
堅牢で効率的かつ保守可能なGoアプリケーションを構築するための慣用的なGoパターン、ベストプラクティス、規約。
Why this skill is useful
Provides specific Go patterns and best practices that enhance the AI's ability to generate idiomatic Go code.
What it needs
About 7k tokens when loaded. Last updated 2026-08-06. 238,342 stars on the source repository.
What this skill does
Go開発パターン 堅牢で効率的かつ保守可能なアプリケーションを構築するための慣用的なGoパターンとベストプラクティス。 いつ有効化するか 新しいGoコードを書くとき Goコードをレビューするとき 既存のGoコードをリファクタリングするとき Goパッケージ/モジュールを設計するとき 核となる原則 1. シンプルさと明確さ Goは巧妙さよりもシンプルさを好みます。コードは明白で読みやすいものであるべきです。 2. ゼロ値を有用にする 型を設計する際、そのゼロ値が初期化なしですぐに使用できるようにします。 3. インターフェースを受け取り、構造体を返す 関数はインターフェースパラメータを受け取り、具体的な型を返すべきです。 エラーハンドリングパターン コンテキスト付きエラーラッピング カスタムエラー型 errors.IsとErrors.Asを使用したエラーチェック エラーを決して無視しない 並行処理パターン ワーカープール キャンセルとタイムアウト用のContext グレースフルシャットダウン 協調的なGoroutine用のerrgroup Goroutineリークの回避 インターフェース設計 小さく焦点を絞ったインターフェース 使用する場所でインターフェースを定義 型アサーションを使用してオプション動作を実装 パッケージ構成 標準プロジェクトレイアウト パッケージ命名 パッケージレベルの状態を避ける 構造体設計 関数型オプションパターン コンポジション用の埋め込み メモリとパフォーマンス サイズがわかっている場合はスライスを事前割り当て 頻繁な割り当て用のsync.Pool使用 ループ内での文字列連結を避ける Goツール統合 基本コマンド 推奨リンター設定(.golangci.yml) クイックリファレンス:Goイディオム イディオム 説明 ------- ------------- インターフェースを受け取り、構造体を返す 関数はインターフェースパラメータを受け取り、具体的な型を返す エラーは値である エラーを例外ではなく一級値として扱う メモリ共有で通信しない goroutine間の調整にチャネルを使用 ゼロ値を有用にする 型は明示的な初期化なしで機能すべき 少しのコピーは少しの依存よりも良い 不要な外部依存を避ける 明確さは巧妙さよりも良い 巧妙さよりも可読性を優先 gofmtは誰の好みでもないが皆の友達 常にgofmt/goimportsでフォーマット 早期リターン エラーを最初に処理し、ハッピーパスのインデントを浅く保つ 避けるべきアンチパターン 覚えておいてください: Goコードは最良の意味で退屈であるべきです - 予測可能で、一貫性があり、理解しやすい。迷ったときは、シンプルに保ってください。
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills affaan-m/golang-patterns--eeb437