Namenskonventionen für Variablen "Anzahl der Foos" [geschlossen]

87

Nehmen wir an, ich muss die Anzahl der foo-Objekte in einer Variablen speichern.

Da ich kein englischer Muttersprachler bin, frage ich mich immer, was der beste (= kurze und sofort klare) Name für diese Sorte ist.

foo_num? num_foo? no_foo? foo_no? oder etwas anderes?

Der vollständige Name sollte sein number_of_foos, ist aber etwas ausführlich.

Was ist dein Favorit und warum?

Giacomo
quelle
Ich mochte die Antwort von fooCount, aber ich denke nicht, dass number_of_foos zu lang ist, aber ich nehme an, es hängt davon ab, was "foo" eigentlich ist.
Chance
Und auch, was Sie mit der Variablen machen wollen. Arithmetische Ausdrücke mit number_of_foosdarin werden schnell umständlich.
user7610

Antworten:

47

Ich entscheide mich dafür, fooCountweil es unkompliziert ist und ich denke, das Wort "count" ist das kürzeste und beste, das es beschreibt, nicht "number of" oder ähnliches.

Ich gehe dafür, FOO_COUNTwenn Sie es endgültig und statisch speichern müssen (wenn Sie es nicht ändern müssen / wenn es eine Konstante ist). (alle Kappen für Konstanten!)

Ich gehe countund rufe es an, Foo.countwenn Sie es wirklich als Attribut für eine Klasse speichern müssen, die Sie erstellt haben Foo.

Lesbarkeit für Sie und Ihr Team!

Ironmaurus
quelle
foosCount, da der Plural eine Menge noch besser darstellt. Und es soll eine Reihe von Dingen sein.
Magne
Aber es kommt darauf an. Plural klingt gut für einige Namen wie gamesIncludedCount, aber Singular klingt besser für andere Namen wie gameCount.
Magne
24

Da die Variable die Anzahl der foo-Objekte speichert, fooCountbekomme ich meine Stimme.

Justin Niessner
quelle
+1 für das Hinzufügen einer Begründung (obwohl die Formulierung eher unelegant ist).
1
@delnan - Normalerweise würde ich näher darauf eingehen, aber ich antworte von meinem Telefon aus.
Justin Niessner
16

Im Englischen können die Wörter 'number' und 'count' beide als Substantive oder Verben fungieren, aber es ist wahrscheinlich üblicher, 'number' als Substantiv und 'count' als Verb zu sehen. Man könnte also argumentieren, dass "die Anzahl der Foos" oder "num_foo" vertrauter klingt als "die Anzahl der Foos" oder "foo_count". Es klingt für mich sicherlich natürlicher, wenn ich auf eine Menge verweise, die sich nicht ständig ändert. Das Wort 'count', selbst wenn es als Substantiv verwendet wird, deutet auf einen Wert hin, der mit der Zeit steigt.

Ruby und Python haben .count-Methoden, die zeigen, dass das Wort als Verb und nicht als Substantiv verwendet wird. In Ruby könnte man sagen:

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

Dies gibt jedoch einen Wert zurück, der die Anzahl der Foos darstellt. Dies ist genau das, was Sie erwarten könnten, wenn Sie nur auf eine Variable namens 'foo_count' verweisen. In gewisser Weise ist die Tatsache, dass 'foos.count' und 'foo_count' ähnlich aussehen, irgendwie nett.

'Zahl' kann in einigen Fällen mehrdeutig sein, da es üblich ist, Zahlen zu speichern, die keine Menge von etwas darstellen. Andere Leute haben bereits Ausweise und Kreditkartennummern erwähnt. Hier ist ein weiteres Beispiel:

num_string

Können Sie sich anhand dieses Variablennamens vorstellen, was er darstellt? Ist es eine Ganzzahl, die die Anzahl der Zeichenfolgen darstellt, oder ist es eine Zeichenfolgendarstellung einer Zahl?

Also denke ich nur laut nach und gebe jedem ein paar Vor- und Nachteile, wenn ich sie sehe. Der Grund, warum ich sogar auf dieser alten Seite bin, ist, dass ich die beiden uneinheitlich benutze und dachte, ich würde sehen, was andere Leute tun.

Übrigens mag ich 'nr_foo' nicht, da 'nr' mir das Wort 'Nummer' überhaupt nicht vorschlägt oder so klingt. Es klingt wie "ner" oder steht vielleicht für "nicht bewertet" oder "nationales Rugby". :-) Und ich werde nicht einmal sagen, wie sich fooCnt anhört. Einfach nein.

Kal
quelle
15

Der Linux-Kernel verwendet "nr_foo", was besser ist als "no_foo" (das sieht aus wie eine Negation). Ich selbst neige dazu, "fooCount" oder "fooCnt" zu verwenden, aber manchmal auch "numFoo". Ich bin mir nicht sicher, warum ich zwischen "fooCount" und "numFoo" schwanke. Ich denke, es hängt von meiner Stimmung ab. Aber du, du solltest konsequent sein (wie ich);)

Siride
quelle
4
@rjack - "Zahl" ist vage, "Anzahl" ist spezifisch. Eine Nummer könnte beispielsweise eine ID sein. [Ich denke, McConnell macht diesen Punkt in "Code Complete", aber ich habe keine Kopie dabei.] Abkürzungen für "number", die eher verstanden werden (außer von Linux-Kernel-Autoren), umfassen "nFoo" und "numFoo".
Andy Thomas
1
@Andy Thomas-Cramer - IMHO nicht so verwirrend: Klingt credit_card_nrnach "Kreditkartennummer", während es nr_credit_cardsnach "Anzahl der Kreditkarten" klingt und kürzer ist als credit_cards_count. Klingt für mich ganz natürlich (aber ich kann mich irren, da ich kein englischer Muttersprachler bin).
Giacomo
1
@rjack Es wäre sowieso credit_card_count, da Sie Substantive im Allgemeinen nicht pluralisieren, wenn sie Teil einer Verbindung sind.
Siride
1
Das "nr" des Linux und Ihre Antwort sind ein gutes Beispiel dafür, wie verwirrend das Wort "number" ist. Unter Linux bedeutet "nr" (auch?) Die fortlaufende Nummer anstelle von count. ZB __NR_openist nicht die Anzahl der openSystemaufrufe - es ist der Index des Systemaufrufs, dh der Wert, den Sie an die Systemaufrufanweisung übergeben, um anzugeben, welchen Systemaufruf Sie aufrufen.
Ruslan
1
Wie in der Antwort von @ Kal würde ich es persönlich vermeiden, fooCntda es möglicherweise falsch interpretiert wird.
Ruben9922
8

fooCountWenn die Variable keine Konstante ist, FOO_COUNTwenn ja. : D.

Gordon Gustafson
quelle
5

Ich persönlich würde mich für total_foosoder totalFoosabhängig vom Sprachstandard entscheiden. Es ist besser, wenn der Wert eine endgültige Summe und nicht nur eine laufende Zählung ist.

Es ist auch sinnvoller zu sagen "Ich habe insgesamt 3 Foos" als "Ich habe 3 Foos".

Insgesamt ist es keine große Sache, aber ich benutze immer totalüber count!

Wille
quelle
1
totalFooskönnte bedeuten, dass es sich um einen kompletten Satz von Foos handelt (es geschah in meinem Fall, als ich verschiedene Sätze sammelte). Aus Gründen der Lesbarkeit ist es auch schön, die Kennung am Wortanfang zu haben. Also würde ich mitmachen foosCount, da es weniger ambivalent ist und mit beginnt foo*. Man könnte auch sagen "Ich habe einen foosCount von 3".
Magne
3

Meistens fooCountwie alle sagten. Manchmal ist es besser, es zu verwenden foos, normalerweise, wenn Sie nicht über die Liste der Foos verfügen oder wenn es sich nicht um separate Objekte handelt (z seconds. B. für eine Pizza, die Sie haben sliceskönnen usw.).

Verwenden Sie fooses nur, wenn keine Verwechslungsgefahr besteht - wenn es offensichtlich ist, dass Sie in diesem Zusammenhang niemals eine Liste von Foos haben würden.

Konfigurator
quelle
Wenn Sie foosmanchmal "die Anzahl der fooObjekte" und manchmal "die Sammlung von fooObjekten " bedeuten , würde dies zu Verwirrung führen.
James McNellis
slicesklingt für mich wie eine Reihe von sliceObjekten, die Teil eines pizzaObjekts sind. Ich würde verwenden sliceCount, oder nr_slicesoder was auch immer (ich habe mich noch nicht entschieden: D)
Giacomo
Ja, verwenden Sie das nur, wenn keine Chance auf Kondusion besteht
Konfigurator
2

Ich benutze für die Menge von etwas: SomethingCount ( Something_Count )

Ich benutze für die Sequenznummer von etwas: etwasIndex ( etwas_index ), weil das Wort "Nummer" mehrdeutig ist ( es bedeutet die Menge und die Sequenznummer )

artamonovdev
quelle
1

Ich würde gehen fooCount

CyberDude
quelle
1

Ich neige dazu, fooCount oder ähnliches zu verwenden.

Engin Kurutepe
quelle