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?


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!


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.


+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.


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);)


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


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!


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.


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 )



Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.