「fooの数」変数の命名規則[クローズ]


90

fooオブジェクトの数を変数に格納する必要があるとしましょう。

英語を母国語としないので、私はいつもその変数の最良の(=短くてすぐに明確な)名前は何だろうと思っています。

foo_numnum_foono_foofoo_no?または、他の何か?

フルネームはである必要がnumber_of_foosありますが、少し冗長です。

あなたのお気に入りは何ですか、そしてその理由は何ですか?


私はfooCountの答えが好きでしたが、number_of_foosが長すぎるとは思いませんが、それは「foo」が実際に何であるかによると思います。
チャンス

また、変数で何をしたいのか。算術式が含まnumber_of_foosれていると、すぐに面倒になります。
user7610 2016

回答:


52

わかりやすいfooCountので、「数」などではなく、「数」という言葉が一番短くて一番いいと思います。

私は行くためにFOO_COUNT、それはあなたが(あなたはそれが一定の場合/それを変更する必要がない場合)、それは最終的な静的格納する必要がある場合。(定数のすべての上限!)

作成したクラスの属性として本当に保存する必要がある場合は、それcountを呼び出しFoo.countますFoo

あなたとあなたのチームのための読みやすさ!


foosCount、複数形は集合をよりよく表すためです。そして、それは一連の事柄の数であるはずです。
マグネ

しかし、それは状況によって異なります。複数gamesIncludedCount形は、などの一部の名前には適していますが、単数形はgameCount。などの他の名前に適しています。
マグネ

26

変数はfooオブジェクトの数のカウントを格納するので、fooCount私の投票を取得します。


理論的根拠を追加するための+1(ただし、フレージングは​​かなりエレガントではありません)。

1
@ delnan-通常は詳しく説明しますが、電話から応答しています。
Justin Niessner 2010

17

英語では、「number」と「count」の両方が名詞または動詞として機能しますが、「number」が名詞として使用され、「count」が動詞として使用されるのがおそらくより一般的です。したがって、「fooの数」または「num_foo」は「foocount」または「foo_count」よりもよく知られているように聞こえると主張することができます。絶えず変化しない量を参照するとき、それは確かに私にとってより自然に聞こえます。「カウント」という単語は、名詞として使用されている場合でも、時間の経過とともに増加する値を示唆しています。

RubyとPythonには.countメソッドがあり、名詞ではなく動詞として使用されている単語を示します。Rubyでは次のように言うかもしれません。

foos.count   # Count how many elements in the array 'foos'

それでも、これはfooの数を表す値を返します。これは、「foo_count」という変数を参照した場合に予想される値とまったく同じです。したがって、ある意味で、「foos.count」と「foo_count」が似ているという事実は、ある意味素晴らしいものです。

何かの量を表さない数値を格納するのが一般的であるため、「数値」は場合によってはあいまいになる可能性があります。他の人々はすでにIDとクレジットカード番号について言及しています。別の例を次に示します。

num_string

その変数名を見て、それが何を表しているのか推測できますか?それは文字列の量を表す整数ですか、それとも数値の文字列表現ですか?

だから私は本当に大声で考えて、私が見ているようにそれぞれにいくつかの賛否両論を与えています。私がこの古いページにいる理由は、私が2つを一貫して使用していないことに気づき、他の人が何をしているのかがわかると思ったからです。

ところで、私は「nr_foo」が好きではありません。「nr」は実際には「数字」という単語を示唆したり、そのように聞こえたりしないからです。「ner」のように聞こえるか、「notrated」または「nationalrugby」の略です。:-)そして私はfooCntがどのように聞こえるかを言うことさえあえてしません。いいえ。


15

Linuxカーネルは「nr_foo」を使用します。これは「no_foo」(否定のように見えます)よりも優れています。私自身は「fooCount」や「fooCnt」を使用する傾向がありますが、「numFoo」を使用することもあります。「fooCount」と「numFoo」の間で変動する理由がわかりません。気分次第だと思います。しかし、あなたは、一貫している必要があります(私もそうです);)


4
@ rjack-「number」はあいまいで、「count」は特定です。たとえば、番号はIDにすることができます。[McConnellは「CodeComplete」でこの点を指摘していると思いますが、私にはコピーがありません。](Linuxカーネルライター以外で)理解される可能性が高い「number」の略語には、「nFoo」と「numFoo」があります。
アンディトーマス

1
@Andy Thomas-Cramer-それほど混乱しないIMHO:credit_card_nr「クレジットカード番号」のように聞こえますが、「クレジットカードの数」のnr_credit_cardsように聞こえ、credit_cards_count。よりも短いです。私には非常に自然に聞こえます(しかし、私は英語を母国語としないので間違っているかもしれません)。
ジャコモ

1
@rjackとにかく、名詞が複合語の一部である場合、名詞を複数形にすることはないため、credit_card_countになります。
siride 2010

1
Linuxの「nr」とあなたの答えは、「number」という単語がいかに混乱しているかを示す良い例です。Linuxでは、「nr」は(また?)カウントではなく連番を意味するために使用されます。たとえば__NR_openopenシステムコールの数ではなく、システムコールのインデックスです。つまり、システムコール命令に渡して、呼び出すシステムコールを指定する値です。
ルスラン

1
@Kalの回答のように、私はfooCntそれを誤って解釈する可能性があるため、個人的には避けたいと思います。
ruben99 2219年


5

私は個人的に、total_foosまたはtotalFoos言語標準に応じて行きます。値が単なる実行カウントではなく、最終的な合計である方が適切です。

また、「fooの数が3つある」よりも、「fooの総数が3つある」と言う方が理にかなっています。

全体的に、それは大したことではありませんが、私はいつも使いtotalすぎていcountます!


1
totalFoosそれがFoosの完全なセットであることを意味する可能性があります(私の場合、さまざまなセットを収集していたときに発生しました)。また、読みやすくするために、単語の先頭に識別子を付けると便利です。それで、私はfoosCount、それがより曖昧でなく、で始まるので、と行きfoo*ます。「foosCountが3です」と言うこともできます。
マグネ

3

ほとんどfooCountみんなが言ったように。foos通常、実際にfooのリストがない場合、またはそれらが個別のオブジェクトではない場合(たとえばseconds、ピザの場合slicesなど)、を使用する方が適切な場合があります。

foosただし、混乱の可能性がない場合にのみ使用してください。このコンテキストでfooのリストがないことが明らかな場合にのみ使用してください。


あなたが使用している場合foos「の数を意味するように、時にはfoo「の集まりを意味するオブジェクト」と他の回fooのオブジェクトを、私はそれが混乱につながる可能性があると思うだろう。
ジェームズMcNellis

slices私にsliceは、pizzaオブジェクトの一部であるオブジェクトの配列のように聞こえます。私が使用したいsliceCount、またはnr_slices:、または任意の(D私はまだ決めていない)
ジャコモ

はい、それは、伝導の可能性がない場合にのみ使用してください
コンフィギュレー

2

私は何かの量に使用します:somethingCountsomething_count

「number」という単語があいまいであるため、somethingIndexsomething_index)のシーケンス番号に使用します数量とシーケンス番号を意味します



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.