Edited at

モノの数を数える変数名の命名 は fooCount の形式が良いみたい

More than 3 years have passed since last update.

数えるモノの名前を仮に foo として「foo の個数」を、プログラミングの文脈ではなく素朴に英訳すると「number of foos」になるが、これを元に変数名にすると長いし何か落ち着かない。などと以前から思いつつ何となく流していた。ふと、少し調べてみた。

英語ネイティブの言語感覚で fooCount が比較的多くの人が合意しうる案のようだ。


ざっと読んでの要点メモ


  • number では foo に関する何の数字か分からない。count ならば個数のことであることが示唆される。(書籍「CODE COMPLETE」にこの曖昧さについて記述があるらしい。)

  • number には名詞、count には動詞の感じがある。が、辞書的には両方ともどちらにも使えて(動詞)「数える動作」(名詞)「そうやって得た数」の意味がある。

  • count には数え上げて総計を求める動作の感じを伴う。数え上げた結果の数ならこれが自然。

  • この数え上げ動作の感じがあるので、定数の場合には不自然と見る向きもある。この場合の別案としては MAX_FOOS があり。

  • length や size という手もある。ただし個数というよりは物理的な長さの印象が伴う。foo を収めている集合構造(配列、リストなど)についてならばあり。

  • 場合によっては foos もありだが、foo の集合構造を保持する変数と間違われる可能性がある。個々の foo の中身に興味がない場合などに限定される。

  • "number of foos" をベースとする流儀での命名例: numFoo, nFoo, nrFoo

  • Quantity (qty) 派は命名に言及している英語記事を見つけられなかった。


参考にしたページ

-Naming conventions for “number of foos” variables

-How to name a variable: numItems or itemsCount or itemCount?

-variable naming: count vs. number vs. numberOf vs n vs. length, ...

-「~の数」という変数名はどうつけますか?

2ちゃんねる プログラム板「クラス名・変数名に迷ったら書き込むスレ。」にも何回か話題が出ているが、ちょっと残念な感じなので省略。