Vor kurzem habe ich mein derzeitiges Testautomatisierungsprojekt „The Internet“ vorgestellt. Im Rahmen des Projekts fiel mir auf, dass ich einige boolesche Methoden als Fragen, andere als Aussagen formuliert hatte. So hieß die eine Methode isAlertPresent()
und die nächste nameIsDisplayed()
. Also begann ich, nach Konventionen zu suchen…
Gleich der erste Beitrag, den ich gefunden habe, geht tief ins Detail: Tips on naming boolean variables. Allerdings geht es dem Autor gar nicht darum, ob eine Variable nun heißen soll userIsLoggedIn
oder isUserLoggedIn
. Er geht von einer Konvention aus, dass ein Boolean immer mit is oder has beginnt. Somit wird die Variable zu einer Frage.
Booleans als Aussage
Nach einem Blick in die Kommentare unterhalb des Beitrags wird klar: es gibt auch gegenteilige Meinungen. Und die sind wohlbegründet. Denn ein Boolean als Aussage ergibt natürlichere Sätze, wenn man ihn in Kontrollstrukturen einbaut. Ein Beispiel:
if (secondCheckboxIsSelected()) {
clickSecondCheckbox();
}
alternativ könnte dieses Beispiel so aussehen:
if (isSecondCheckboxSelected()) {
clickSecondCheckbox();
}
Auch im Kontext von Assertions liest sich die Aussageform natürlicher als die Frageform:
assertTrue(textOfSecondParagraphIsCorrect())
vs. assertTrue(typosPage.isTextOfSecondParagraphCorrect())
Booleans als Frage
Doch auch boolesche Variablen als Fragen zu formulieren, ist nicht unbegründet. Ein gutes Argument ist, dass Variablen mit einem Prefix wie is, has oder are sofort als Boolean zu erkennen sind. Ein ebenso gutes Argument ist, dass die Autovervollständigung bzw. Vorschläge besser funktionieren, wenn alle booleschen Variablen gleich beginnen. Beide Argumente greifen vor allem in großen Projekten.
Fazit: Keine Frage – boolesche Variablen lesen sich als Aussagen natürlicher
Mich haben die Kommentare im verlinkten Beitrag davon überzeugt, dass boolesche Variablen als Aussage natürlicher klingen. Zwar gibt es gute Argumente für eine Benennung in der Frageform, doch diese greifen eher in großen Projekt. In einem überschaubaren Projekt ist ein Boolean auch ohne Prefix als solches zu erkennen. So gewinnt das Argument der besseren Lesbarkeit.
Schreibe einen Kommentar