logo

Crowdly

Namensgebung So wie das Thema Einrückungen wurde auch das Thema Namensgebung ...

✅ Перевірена відповідь на це питання доступна нижче. Наші рішення, перевірені спільнотою, допомагають краще зрозуміти матеріал.

Namensgebung

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:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

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.

Wie kann ich gute Namen geben?

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:

  • Nicht alle Namen sind gültig. Namen dürfen z.B. keine Leerzeichen haben und müssen mit einem Buchstaben beginnen. Namen, die gegen diese Syntax-Regeln verstoßen, können gar nicht in einem Programm verwendet werden.
  • in Java gilt die Vereinbarung (Namenskonvention), dass alle Variablennamen mit einem Kleinbuchstaben beginnen. Nur Klassennamen haben einen Großbuchstaben. Das wird bald besonders wichtig, wenn vermehrt Klassennamen auch in unseren Programmen verwendet werden, damit sie von einem.
  • Umlaute sind in Java zwar akzeptiert, doch sie verursachen immer wieder Probleme, wenn Dateien von einem Betriebssystem in ein anderes Betriebssystem übernommen werden. Um diese Probleme von vornherein zu umgehen ist es besser, Umlaute durch ae, oe oder ue zu ersetzen und auch das scharfe ß nicht zu verwenden. Bonus (eventuell auch erst für spätere Jahre): Namen in Englisch sind für ein internationales Arbeitsumfeld besonders sinnvoll.

Vergleichen wir also das Programm mit einer besseren Variablenbenennung:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

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.

Ergänze folgende Zusammenfassung und beantworte die Fragen:

  • 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?

Більше питань подібних до цього

Хочете миттєвий доступ до всіх перевірених відповідей на elearning.tgm.ac.at?

Отримайте необмежений доступ до відповідей на екзаменаційні питання - встановіть розширення Crowdly зараз!