go-functions
Go ファイル内の関数の整理、関数シグネチャのフォーマット、戻り値の設計、Printf スタイルの命名規則に従う際に使用します。ユーザーが関数設計やシグネチャのフォーマットに言及しない場合でも、Go の関数を追加またはリファクタリングする際に適用されます。ファンクショナルオプションのコンストラクタは対象外です(go-functional-options を参照)。
description の原文を見る
Use when organizing functions within a Go file, formatting function signatures, designing return values, or following Printf-style naming conventions. Also use when a user is adding or refactoring any Go function, even if they don't mention function design or signature formatting. Does not cover functional options constructors (see go-functional-options).
SKILL.md 本文
Go 関数設計
このスキルが適用されない場合: 関数型オプションコンストラクタ (
WithTimeout,WithLogger) についてはgo-functional-optionsを参照してください。エラーリターン規約についてはgo-error-handlingを参照してください。関数およびメソッドの命名についてはgo-namingを参照してください。
関数のグループ化と順序付け
ファイル内の関数を以下のルールに従って整理します:
- 関数は大まかな呼び出し順序でソート
- 関数は受信者でグループ化
- エクスポートされた関数は
struct/const/var定義の後に最初に出現 NewXxx/newXxxコンストラクタは型定義の直後に出現- プレーンユーティリティ関数はファイルの末尾に向かって出現
type something struct{ ... }
func newSomething() *something { return &something{} }
func (s *something) Cost() int { return calcCost(s.weights) }
func (s *something) Stop() { ... }
func calcCost(n []int) int { ... }
関数シグネチャ
マルチラインシグネチャのフォーマット、リターン値のラッピング、呼び出しサイトの短縮、またはナックボール(naked bool)パラメータをカスタム型に置き換える際は
references/SIGNATURES.mdを参照してください。
可能な限りシグネチャは1行に保ちます。ラップする必要がある場合は、すべての引数を独立した行に配置し、末尾のカンマを付与します:
func (r *SomeType) SomeLongFunctionName(
foo1, foo2, foo3 string,
foo4, foo5, foo6 int,
) {
foo7 := bar(foo1)
}
曖昧な引数には /* name */ コメントを追加します。あるいはさらに良く、ナックボール bool パラメータをカスタム型に置き換えます。
インターフェースへのポインタ
インターフェースへのポインタがほぼ必要になることはありません。インターフェースを値として渡します — 基礎となるデータはそれでもポインタになります。
// 悪い例: インターフェースへのポインタ
func process(r *io.Reader) { ... }
// 良い例: インターフェース値を渡す
func process(r io.Reader) { ... }
Printf と Stringer
%v/%s/%d を超える Printf 動詞を使用する場合、fmt.Stringer または fmt.GoStringer を実装する場合、カスタム Format() メソッドを作成する場合、または String() メソッドの無限再帰をデバッグする場合は
references/PRINTF-STRINGER.mdを参照してください。
Printf スタイルの関数名
フォーマット文字列を受け入れる関数は go vet サポートのために f で終わる必要があります。Printf 呼び出しの外で使用されるフォーマット文字列は const で宣言します。
ロギングまたはエラーメッセージ用に文字列をフォーマットする場合は、手動クォートを使用した %s よりも %q を優先します — 特殊文字を安全にエスケープしてクォートで囲みます:
return fmt.Errorf("unknown key %q", key) // 出力: unknown key "foo\nbar"
3個以上のオプションパラメータを持つコンストラクタを設計する場合は go-functional-options を参照してください。
クイックリファレンス
| トピック | ルール |
|---|---|
| ファイル順序 | 型 -> コンストラクタ -> エクスポート -> 非エクスポート -> ユーティリティ |
| シグネチャラッピング | すべての引数を独立した行に配置し末尾のカンマを付与 |
| ナックパラメータ | /* name */ コメントを追加するか、カスタム型を使用 |
| インターフェースへのポインタ | ほぼ必要なし。インターフェースを値で渡す |
| Printf 関数名 | go vet サポートのために f で終わる |
関連スキル
- エラーリターン: エラーリターンパターンの設計またはマルチリターン関数でのエラー折り返しについては
go-error-handlingを参照してください - 命名規約: 関数、メソッドの命名またはゲッター/セッターパターンの選択については
go-namingを参照してください - 関数型オプション: 3個以上のオプションパラメータを持つコンストラクタを設計する場合は
go-functional-optionsを参照してください - フォーマット原則: 行長、ナックリターン、またはシグネチャフォーマットについて判断する際は
go-style-coreを参照してください
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- cxuu
- リポジトリ
- cxuu/golang-skills
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/cxuu/golang-skills / ライセンス: Apache-2.0
関連スキル
nano-banana-2
inference.sh CLIを通じてGoogle Gemini 3.1 Flash Image Preview(Nano Banana 2)で画像を生成します。テキストから画像を生成する機能、画像編集、最大14枚の複数画像入力、Google Searchグラウンディング機能に対応しています。トリガーワード:「nano banana 2」「nanobanana 2」「gemini 3.1 flash image」「gemini 3 1 flash image preview」「google image generation」
octocode-slides
洗練されたマルチファイル形式のHTMLプレゼンテーションを生成します。6段階のフロー(概要 → リサーチ → アウトライン → デザイン → 実装 → レビュー)で構成されています。各スライドは独立したHTMLファイルとなり、iframeで読み込まれます。「スライドを作成してほしい」「プレゼンテーションを作ってほしい」「HTMLスライドを生成してほしい」「デックを構築してほしい」といった依頼や、ノート・ドキュメント・コードを洗練されたプレゼンテーションに変換する際に使用できます。
gpt-image2-ppt
OpenAIのgpt-image-2を使用して、視覚的に優れたPPTスライドを生成します。Spatial Glass、Tech Blue、Editorial Monoなど10種類のキュレーション済みスタイルに対応し、ユーザーが提供したPPTXファイルを模倣するテンプレートクローンモードも搭載しています。HTMLビューアと16:9形式のPPTXファイルを出力します。プレゼンテーション、スライド、ピッチデック、投資家向けPPT、雑誌風PPTの作成依頼などで活用してください。
nano-banana
Nano Banana PRO(Gemini 3 Pro Image)およびNano Banana(Gemini 2.5 Flash Image)を使用したAI画像生成機能です。以下の場合に活用できます:(1)テキストプロンプトからの画像生成、(2)既存画像の編集、(3)インフォグラフィックス、ロゴ、商品写真、ステッカーなどのプロフェッショナルなビジュアルアセット制作、(4)複数画像での人物キャラクターの一貫性保持、(5)正確なテキスト描画を含む画像生成、(6)AI生成ビジュアルが必要なあらゆるタスク。「画像を生成」「画像を作成」「写真を作る」「ロゴをデザイン」「インフォグラフィックスを作成」「AI画像」「nano banana」またはその他の画像生成リクエストをトリガーとして機能します。
oiloil-ui-ux-guide
モダンでクリーンなUI/UXガイダンス・レビュースキルです。新機能や既存システム(Webアプリ)に対して、実行可能なUI/UX改善提案、デザイン原則、デザインレビューチェックリストが必要な場合に活用できます。CRAP(コントラスト・反復・配置・近接)をベースに、タスクファーストなUX、情報設計、フィードバック・システムステータス、一貫性、affordances、エラー防止・復旧、認知負荷を重視します。モダンミニマルスタイル(クリーン・余白・タイポグラフィ主導)を強制し、不要なテキストを削減、アイコンとしての絵文字を禁止し、統一されたアイコンセットから直感的で洗練されたアイコンを推奨します。
axiom-hig-ref
Apple Human Interface Guidelines リファレンス — 色(セマンティックカラー、カスタムカラー、パターン)、背景(マテリアル階層、ダイナミック背景)、タイポグラフィ(標準スタイル、カスタムフォント、Dynamic Type)、SF Symbols(レンダリングモード、色、多言語対応)、ダークモード、アクセシビリティ、プラットフォーム固有の考慮事項を網羅したガイドラインです。