Ich bin sicher, dass viele von uns an der einen oder anderen Stelle solche Methodennamen gesehen haben:
UploadTheFileToTheServerPlease
CreateATemporaryFile
WriteTheRecordToTheDatabase
ResetTheSystemClock
Das heißt, Methodennamen, die auch grammatikalisch korrekte englische Sätze enthalten und zusätzliche Wörter enthalten, damit sie wie Prosa gelesen werden. Persönlich bin ich kein großer Fan von solchen "wörtlichen" Methodennamen und bevorzuge es, prägnant zu sein, während ich immer noch so klar wie möglich bin. Für mich sehen Wörter wie "a", "an" und "the" in Methodennamen einfach unangenehm aus, und Methodennamen werden unnötig lang, ohne dass wirklich etwas Nützliches hinzugefügt wird. Ich würde die folgenden Methodennamen für die vorherigen Beispiele bevorzugen:
UploadFileToServer
CreateTemporaryFile
WriteOutRecord
ResetSystemClock
Nach meiner Erfahrung ist dies weitaus häufiger als der andere Ansatz, die längeren Namen zu schreiben, aber ich habe beide Stile gesehen und war gespannt, was die Gedanken anderer Leute über diese beiden Ansätze waren.
Befinden Sie sich also im Camp "Methodennamen, die sich wie Prosa lesen" oder in dem Camp "Methodennamen, die sagen, was ich meine, aber wie eine schlechte Übersetzung von Fremdsprache in Englisch laut vorlesen"?
quelle
WriteTheRecordToTheDatabase
. Wenn jemand dies eincheckte, wurde er ernsthaft angesprochen.Please
"? WowAntworten:
Ich werde zustimmen, dass Prosa-Methoden mit einer Ausnahme saugen:
Unit-Testfälle
Diese werden in Ihrem Code in der Regel nie aufgerufen und in Testberichten angezeigt. Daher ist es praktisch, Auslesungen mit etwas mehr Prosa zu haben:
Auch dies sollte sparsam geschehen, aber ich kann es als mindestens einen Fall ansehen, in dem grammatische Ergänzungen es ein wenig einfacher machen können, auszudrücken, was bestanden hat und was nicht. Dies ist natürlich so, es sei denn, Ihre Sprache / Ihr Framework bietet einen guten Mechanismus für Testbeschreibungen in der Testanzeige außer Methodennamen. Ignorieren Sie in diesem Fall auch diesen.
quelle
MethodUnderTest_Condition_ExpectedBehaviour
Namenskonvention für Komponententests . zBAddOrder_WithInvalidCustomerId_Fails
,CreateItem_WithOutOfBoundsPrice_ReturnsError
undDeleteEvent_EventExistsInSeason_Succeeds
.._AdditionFails
und.._DeletionSucceeds
sollte besser sein. Ich habe das Ergebnis der Methode angegeben, aber Sie weisen darauf hin, dass sie mit dem Testen der Terminologie für Bestehen / Nichtbestehen verwechselt werden können.Lawrence aus dem Büro umschreiben ...
quelle
Solche "langen" Namen klingen nicht nach Prosa . Wenn sie alleine sind - vielleicht, aber zusammen mit dem Rest des Codes -, machen sie einfach mehr Chaos. Hör zu:
Yuuuuk! ..
Dies ist kein gültiger englischer Text, und in keiner Programmiersprache sieht er so aus. Es macht also keinen Sinn, Bytes für Artikel auszugeben.
quelle
bool ResultOfTheGentlyUploadOfTheFileToTheServer
Aus Sicht des Programmierers ist "UploadFileToServer" sinnvoller und leichter zu lesen und zu verstehen als "UploadTheFileToTheServerPlease".
Mehr als nur englische Grammatik, Lesbarkeit und Verständlichkeit spielen beim Programmieren eine wichtige Rolle!
quelle
UploadTheFileAndProcessItAndEmailTheOrdersToTheCustomers
obwohl es im wirklichen Leben hoffentlich nicht ganz so schlimm ist.Angesichts der vielen Tippfehler in meinem Leben würde ich damit enden
Im Ernst, ich würde mir sogar ansehen, wie mein Klassenname lautete. Wenn meine Klasse "Datei" hieße, würde ich wahrscheinlich einfach mitgehen
So würde es sein
Nur ein einfaches Beispiel, aber das ist hoffentlich illustrativ genug.
quelle
File.UploadFileToServer
... ugh).Es ist mir persönlich egal. Ich habe sie gesehen und sie stören mich nicht. Ich habe nicht einmal über sie nachgedacht, bis ein anderer Programmierer über sie geschimpft hat. Ich fand es schockierend, dass sich jemand so sehr für etwas interessiert, das so wenig zählt. Ich meine, er war wirklich wütend darüber. Aber das war zu Beginn meiner Karriere, vor ungefähr elf Jahren, und seitdem habe ich festgestellt, dass Entwickler, die sich über Kleinigkeiten ärgern, eigentlich ziemlich häufig sind. Deshalb werden Manager von Entwicklern so gut bezahlt. Sie müssen täglich mit Entwicklern umgehen.
Und das würde ich lieber sehen als "UL_FlToSrv".
quelle