✅ Перевірена відповідь на це питання доступна нижче. Наші рішення, перевірені спільнотою, допомагають краще зрозуміти матеріал.
So wie das Thema Einrückungen wurde auch das Thema Namensgebung schon einmal angesprochen. Es ist jedoch so wichtig, dass auch ein Buch zum Thema Clean Code, das für erfahrene Programmierer*innen geschrieben wurde, ein ganzes Kapitel (mit mehreren Seiten) dazu enthält. Schauen wir uns dazu gleich noch einmal das vorherige Beispiel an:
| void main() { int a; int b; int c; int d; a = 1; b = 1; c = 0; d = 0; while(vornFrei() == true) { vor(); a = a + 1; if(kornDa() == false) { b = b + 1; } else { c = c + 1; while(kornDa() == true) { nimm(); d = d + 1; } } } schreib("Körner: " + d + ", Felder gesamt: " + a + ", Felder mit Körnern: " + c + ", leere Felder " + b);} |
Die Variablen in dem Beispiel sind nicht gut benannt. Um zu erkennen, wofür jede Variable steht, muss ich erst den ganzen Code lesen. Erst dann kann ich erraten, was die Variable macht. Je länger und komplizierter ein Programm ist, desto schwieriger ist diese Analyse. Ein guter Name beschreibt, was in der Variablen gespeichert ist bzw. was der Sinn und Zweck dieser Variablen ist. Man kann daraus gleich die Frage nach dem "Warum brauche ich diese Variable?" beantworten (Psst ... diese gemeine Frage soll hin und wieder auch bei Abgabegesprächen gerstellt worden sein). Durch die schlechte Wahl der Namen ist das Programm auch bei der Ausgabe sehr fehleranfällig. Ob wirklich der richtige Wert in der richtigen Variablen steht, ist bei der schreib
-Anweisung nicht zu erkennen.
Dazu musst du verstanden haben, wofür du die Variable brauchst. Die Variable d
z.B. zählt wieviele Körner der Hamster aufgesammelt hat. Das heißt es ist immer die Anzahl an Körnern, die der Hamster gerade hat, gespeichert. Also wären z.B. koernerZaehler
oder anzahlKoerner
gute Namen. Bei den Namen sind neben der Bedeutung auch noch folgende Faktoren zusätzliche Faktoren wichtig:
Vergleichen wir also das Programm mit einer besseren Variablenbenennung:
| void main() { int anzahlFelderGesamt; int anzahlLeereFelder; int anzahlFelderMitKorn; int anzahlKoerner; anzahlFelderGesamt = 1; anzahlLeereFelder = 1; anzahlFelderMitKorn = 0; anzahlKoerner = 0; while(vornFrei() == true) { vor(); anzahlFelderGesamt = anzahlFelderGesamt + 1; if(kornDa() == false) { anzahlLeereFelder = anzahlLeereFelder + 1; } else { anzahlFelderMitKorn = anzahlFelderMitKorn + 1; while(kornDa() == true) { nimm(); anzahlKoerner = anzahlKoerner + 1; } } } schreib("Körner: " + anzahlKoerner + ", Felder gesamt: " + anzahlFelderGesamt + ", Felder mit Körnern: " + anzahlFelderMitKorn + ", leere Felder " + anzahlLeereFelder);} |
Manche sagen vielleicht: "Puh das sind jetzt viele Buchstaben und das macht das ganze noch schwerer zu lesen". Tatsächlich werden wir in den nächsten Kapiteln die Anzahl der Buchstaben wieder reduzieren. Der Vorteil von diesem Ansatz ist jedoch, dass sofort sichtbar ist, was jede Variable macht. Und gute Variablenbezeichnungen helfen uns auch dabei, den Code besser zu verstehen. Durch die Variablennamen kann man ohne viel Nachdenken erkennen, dass die if
-else
-Verzweigung zur Unterscheidung von leeren Feldern und Feldern mit Körnern dient. Auch bei der Ausgabe-Anweisung ist man besser gegen Fehler geschützt, weil erkennbar ist, welche Variable zu welchem Beschreibungstext gehört.
Eine gute Namensgebung bei Variablen ist aus folgenden Gründen wünschenswert:
Welche der folgenden Variablennamen sind nach den Syntaxregeln ungültig?
Welche der folgenden Variablennamen sind nach den Syntaxregeln und der Namenskonvention in Java ungültig?
Achtung umgekehrte Fragestellung:Welche der folgenden Variablennamen sind nach den Syntaxregeln und der Namenskonvention in Java gültig und sind gleichzeitig aussagekräftige und damit gute Variablennamen?
Отримайте необмежений доступ до відповідей на екзаменаційні питання - встановіть розширення Crowdly зараз!