Skip to content
cccskills
FreePublished on GitHub

code-naming

コードの識別子(変数・関数・メソッド・クラス・型・ファイル)に名前を付けるときに使う。get の濫用をやめ、何をして値を得るのかが名前から読み取れる状態にする。実装時と、実装計画でメソッド名・クラス名を決めるときの両方で使う。

The English summary is being prepared. Showing the original description.

Works withQiita
See how to install

Files included (5)

  • SKILL.md9.8 KB
  • references/booleans.md2.9 KB
  • references/class-names.md4.9 KB
  • references/modifiers.md3.7 KB
  • references/verbs.md6.7 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

コードの命名

名前は、そのコードを読む全員が最初に読む説明文である。名前が処理を語らなければ、読み手は本体を読むまで何も分からず、コストも副作用も見誤る。

適用範囲

  • 本スキルが決めるのは語の選び方だけ。大文字小文字の書式(キャメルケース/スネークケース/パスカルケース)は、言語とプロジェクトの規約に従う。
  • プロジェクトにコーディング規約がある場合、規約全体はそちらを優先する。ただし命名については本スキルを優先する。
  • 次の2つは本スキルより優先する。名前を選ぶ余地が無いため。
    1. 言語機能として要求される名前(プロパティ、アクセサ、特殊メソッド、テストの命名規約など)
    2. 標準ライブラリ・フレームワーク・外部ライブラリが既に定めている名前
  • 新しく書く名前に適用する。 既存の名前は、改名が依頼の範囲に含まれるときだけ直す。範囲外の一括改名は、変更差分を膨らませてレビューを困難にする。

名前を決める手順

  1. 何をするものかを日本語で1文にする。 「〜を取得する」で終わるなら、まだ処理を理解できていない。どこから、どうやって、その結果何が起きるかまで書く。
  2. その1文の動詞を英語の動詞に置き換える。 迷ったら references/verbs.md から選ぶ。
  3. 対象を名詞で書く。 汎用的すぎないかを規則3で確認する。
  4. 修飾語が要るかを判断する。 時間軸・状態・不確実性などは references/modifiers.md を見る。
  5. 声に出して読む。 英文として成立しない名前は、読み手の頭の中でも成立しない。真偽値なら if の条件に置いて読む。

規則

1. get を新しく書かない

「取得する」は処理の内容を何も語らない。データベースを引くのか、計算するのか、保持済みの値を返すのか、外部サービスを呼ぶのかが名前から消え、呼び出し側がコストと失敗の可能性を見誤る。

何をして値を得るのかを動詞にする。

やること動詞
保存先から読み込むload
ネットワーク越しに取りに行くfetch
条件に合うものを探すfind / search
一覧をまとめて返すlist
材料から組み立てるbuild / compose
計算して求めるcalculate / count
複数の材料から1つに決めるresolve / determine
別の形に変換して返すto〜 / convert
中から一部を取り出すextract
無ければ作って返すfindOrCreate

例外は適用範囲に挙げた2つ(言語機能としてのアクセサ、既存ライブラリが定めた名前)だけ。それ以外で get を書きたくなったら、手順1に戻って処理を1文で説明し直す。

2. 処理の重さを名前で偽らない

軽い名前(値を返すだけに見える名前)の中に、入出力・ネットワーク通信・繰り返し処理を入れない。逆に、読み込むだけの処理に重い印象の動詞を付けない。名前と実際のコストがずれると、呼び出し側がループの中で呼んでしまう。

3. 目的に沿った名前にする(目的駆動名前設計)

Product(商品)のように広い名前は、予約・注文・在庫・発送のあらゆるロジックを引き寄せ、1つのクラスが肥大する。何の関心事を扱うのかを名前に入れる。

  • Product → ReservedItem(予約) / StockItem(在庫) / ShippingItem(発送)
  • 名前を分けることが、そのまま責務を分けることになる。

次の語は、責務が定まらないまま何でも入る器になりやすい。使う前に、何をするものかを名詞で言い直す。

避ける語直し方
〜Manager / 〜Controller(MVC の Controller を除く)何を管理するのかを動詞化して分割する
〜Util / 〜Helper対象となる型の名前を冠した専用クラスにする
〜Data / 〜Info / 〜Item / 〜Type外して意味が通るなら外す。通らないなら中身が定まっていない
data / result / temp / flag実際に入っているものを書く(isSuccess / newId / mappedRows など)

4. 真偽値は if の条件として英文になる形にする

判定基準は1つ。== true を付けないと文として成立しない名前は使わない。

型例
is + 形容詞/過去分詞isEmpty / isChanged
has + 名詞/過去分詞hasObservers / hasSent
can + 動詞の原形canUpdate
should + 動詞の原形shouldRetry
needs + 名詞/動詞needsMigration
三人称単数の動詞(+名詞)exists / contains / existsError

避ける形は3つ。check〜(真のとき何が起きるのかが読めない)、is + 動詞の原形(isFail ではなく isFailed)、原形の動詞 + 名詞(existError ではなく existsError)。

詳細と反例は references/booleans.md。

5. 意味の広すぎる動詞を避ける

check / change / process / handle / manage / do は、何が起きるのかを読み手に想像させる。実際の動作を書く。

  • checkUser → validateUser / userExists / isUserActive
  • changeStatus → activateUser / cancelOrder / markAsRead
  • processOrder → chargeOrder / shipOrder

比較する compare も結果の意味が読めない。equals / contains / isOlderThan のように、判定結果が名前で決まる形にする。

6. 対になる操作は対になる語で書く

片方だけ別系統の語を使うと、対応関係が読めなくなる。

add / remove、insert / delete、create / destroy、open / close、start / stop、enable / disable、show / hide、lock / unlock、push / pop、connect / disconnect、attach / detach、acquire / release、encode / decode、publish / subscribe

7. 省略しない

一文字の変数名と、その分野で確立していない略語を使わない。nm は name か number か読み手には分からない。

例外は、ごく短い範囲のループ変数(i など)と、確立した略語(id / url / http / db / json)。

8. 品詞を揃える

  • クラス・型・変数は名詞、関数・メソッドは動詞から始める。
  • インタフェースは、性質を表す形容詞(Iterable / Closeable)か、役割を表す名詞(〜Repository / 〜Sender)にする。
  • 配列・コレクションは複数形、その要素は単数形にする(buttons の要素は button)。
  • コールバックは、いつ呼ばれるかを名前に入れる(onCompleted / beforeUpdate / afterSave)。

書き上げたあとのチェック

  • get で始まる新しい名前が残っていないか
  • 名前だけ読んで、入出力・ネットワーク通信の有無が判断できるか
  • クラス名・型名が広すぎて、複数の関心事のロジックが入り込んでいないか
  • 真偽値の名前を if の条件に置いて読んだとき、英文として成立するか
  • check / change / data / result / temp / flag が残っていないか
  • 対になる操作が、対になる語で書かれているか
  • 略語・一文字の名前が、範囲を超えて使われていないか
  • 複数形と単数形が、実際の中身と一致しているか
  • 同じ意味に複数の語を混在させていないか(fetch と load を同じ意味で併用していないか)

リファレンス

  • references/verbs.md — 動詞の使い分け。値を得る/作る/保存する/消す/探す/変換する/検査する/非同期/コレクション操作。
  • references/booleans.md — 真偽値の命名6型と反例3型、否定形の扱い。
  • references/class-names.md — クラス・インタフェースの役割を表す名詞。層ごとの語彙と、避けるべき名前。
  • references/modifiers.md — 修飾語。時間軸・階層・状態・数量・不確実性・注意喚起。

出典

以下を突き合わせて整理した。原典に当たる必要が生じたときはここを見る。

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Claude Code CLIで実装計画レビューの改善ループを回す。実装計画ファイルと要件ファイルを指定し、Claude Codeにレビューさせ、指摘をトリアージして計画を修正し、再レビューする。

The English summary is being prepared. Showing the original description.

keitakn/engineering-skills15Updated Oct 8, 2026

Claude Code CLIでGitHub PRのコードレビューループを回す。PRのURLを指定し、Claude Codeにレビューさせ、指摘をトリアージしてコードを修正し、再レビューする。PRにリンクされたIssue等は必読として機械的に検証する。

The English summary is being prepared. Showing the original description.

keitakn/engineering-skills15Updated Oct 8, 2026

コード・テストコード・コミットログ・コードコメントのどこに何を書くかを決めるときに使う。コードには How、テストコードには What、コミットログには Why、コードコメントには Why not を書き分ける。実装時とコミット・PR 作成時に使う。

The English summary is being prepared. Showing the original description.

keitakn/engineering-skills15Updated Oct 8, 2026

Codex CLIで実装計画レビューの改善ループを回す。実装計画ファイルと要件ファイルを指定し、Codexにレビューさせ、指摘をトリアージして計画を修正し、再レビューする。

The English summary is being prepared. Showing the original description.

keitakn/engineering-skills15Updated Oct 8, 2026

Codex CLIでGitHub PRのコードレビューループを回す。PRのURLを指定し、Codexにレビューさせ、指摘をトリアージしてコードを修正し、再レビューする。PRにリンクされたIssue等は必読として機械的に検証する。

The English summary is being prepared. Showing the original description.

keitakn/engineering-skills15Updated Oct 8, 2026

長大な設計文書・Pull Request・Issueを読み解き、図と短い文を組み合わせた解説HTMLを生成してブラウザで開く。生成したページ内の識別子を指定すると、その項目だけを掘り下げたページも作る。

The English summary is being prepared. Showing the original description.

keitakn/engineering-skills15Updated Oct 8, 2026

See all skills by keitakn

Report a problem with this skill