Wenn ich einen Booleschen Wert (Eigenschaft) hätte, shouldAutoLogin
ist es besser, den Getter zu benennen getShouldAutoLogin
oder nur shouldAutoLogin
so, dass er eher wie Englisch liest?
Ex :
if(shouldAutoLogin){
...
}
oder
if(getShouldAutoLogin){
...
}
readability
clean-code
Mike Bryant
quelle
quelle
${foo.something}
siefoo.getSomething()
hinter die Kulissen übersetzt werden.isFoo()
anstelle von zu verwendengetFoo()
. In Ihrem Beispiel , das wäreisAutoLogin()
if()
unwahrscheinlich, dass es Java ist.Antworten:
Die Namenskonvention für Getter lautet normalerweise:
getAutoLogin()
wenn Sie eine Zeichenfolge oder ein Objekt erhalten.isAutoLogin()
für boolean.quelle
Traditionell wird Getter mit
get
oderis
für den Wert vorangestellt . Dies wird oft in Java Style Guides erwähnt. Zum Beispiel Java Programming Style Guide (dies ist nur ein Beispiel).Die Konvention für solche Methodennamen wird gelegentlich in Tools durchgesetzt, die Reflektion verwenden oder bestimmte Codestile erwarten. Beispielsweise wird erneut in Java (obwohl JSPs Ausdruckssprache) beim Kompilieren des JSP
${foo.bar}
in den Aufruf übersetztfoo.getBar()
. DasgetValue()
wird auf diese Weise durchgesetzt, so dass es mehr als nur eine Konvention wird.Wie bereits erwähnt, stammen die obigen Beispiele aus Java. Dies ist eine Konvention für Java . Andere Sprachen haben andere Konventionen, die beachtet und wahrscheinlich auch befolgt werden sollten. Einige Sprachen verwenden Eigenschaften (und können andere nette Dinge damit tun, wie auf Anfrage kopieren oder schreibgeschützt).
Suchen Sie in den Styleguides nach Ihrer speziellen Sprachauswahl. Es ist wahrscheinlich eine gute Idee, ihnen zu folgen, wenn dies möglich ist, damit andere Codierer beim Lesen Ihres Codes schneller in den Code gelangen können, ohne Ihren persönlichen Stil herauszufinden.
quelle
Eine Methode gut lesbar zu benennen, hat Vorteile. Das Benennen von Methoden, so dass ihre Absicht und Art leicht aus dem Namen abzuleiten ist ("Getter haben Präfixe
get
, boolesche Prädikateis
"), hat ebenfalls Vorteile.Es liegt an Ihnen, ein Gleichgewicht zu finden, aber in einem großen Projekt überwiegen die Vorteile der Konsistenz normalerweise die der zufälligen Klugheit.
Das Umbenennen einer Methode, um den Namen sowohl lesbar als auch konventionskonform zu machen, ist eine schöne tägliche Übung. In Ihrem speziellen Fall würde ich so etwas wie
isAutoLoginEnabled
oder in Betracht ziehengetAutoLoginFlag
.OTOH Sie haben eine Reihe von konzeptionell ähnlichen Methoden, die alle dem Muster folgen können
shouldDoSomething
, Ihr ursprünglicher Name kann auch in Ordnung sein.quelle
Ich finde immer, dass Code so gut wie möglich lesbar sein sollte. Es hilft, die Absichten des Codes klar zu definieren. Denken Sie in Ihrem Fall darüber nach, welche positiven und negativen Verwendungen Ihr Boolescher Wert hat und wie sich dies auf die Lesbarkeit und die Absichten Ihrer Logik auswirken würde.
gegen
Was gibt der Absicht, was der Code versucht, eine klarere Bedeutung?
Wie andere vorgeschlagen haben, würde ich die Variable sogar in umbenennen
o.ä
quelle
Ich neige dazu zu schreiben,
getAutoLogin
wenn ich die Methode zureturn
einem Datentyp wie einemint
oder einem haben möchteString
. Wenn ich jedoch überprüfen möchte, ob estrue
oderfalse
(boolean
) ist, tausche ich das einfachget
gegen einis
solches aus:getAutoLogin
>isAutoLogin
. Ich glaube, es gibt eine Namenskonvention für jede Sprache.quelle