Richtlinien für Punkteabzüge
Programmierung (jeweils -1 bis -3 Punkte)
- Lösung unklar strukturiert
- Komplizierte Lösung
- Hohe Komplexität der Ausdrücke
- Falsche Wahl der Datentypen (z.B.
float
stattint
) - Unnötiger Import oder Deklaration von Klassen bzw. Variablen
- Unnötige Zuweisungen
- "Toter" Programmcode
- Umständliche Formulierungen, zum Beispiel:
-
Vergleiche auf true oder false:
if (a == true)
if (a == false)
-
sinnlose Verzweigungen:
if (a) return true; else return false;
if (a) return false; else return true;
-
Vergleiche auf true oder false:
-
Konkatenation von Strings in Schleifen ohne
StringBuilder
:
while (...) { aString = aString + getString(...); }
-
Zugriff auf Schleifenlaufvariable nach Verlassen der Zählschleife (
for
) - Veränderung der Schleifenlaufvariable in der Zählschleife
Programmierstil (jeweils -1 Punkt)
- Ausdruckslose Namen für Variablen und Felder
- Schlechte optische Aufbereitung des Programmtextes (z.B. Einrückungen)
- Schlechte oder sinnlose Kommentierung (Qualität geht über Quantität)
- Konstante Werte im Programmtext statt benannter Konstanten
- Unleserliche Ausdrücke (z.B. wegen fehlender Klammerung)
- Abweichen von Englisch als Kommentar- oder Bezeichnersprache
- Schlechter oder inkonsistenter Stil (siehe Stilrichtlinien)
- Unbehandelte Compiler Warnings
Programmierrichtlinien
Das Ziel von einheitlichen Programmierrichtlinien ist es die Lesbarkeit von Programmen zu erhöhen. Das hilf zum einen die Lösung zu verstehen, zum anderen ist das finden von Fehler einfacher. Es gibt viele Richtlinien für Java. In dieser Übung orientieren wir uns an den Google Java Style Guidelines. Die Einrückungen sehen wir nicht so streng, solange diese einheitlich sind.
Namenskonvention
Verwenden beschreibende, möglichst kurze Namen. Vermeiden Sie Namen mit nur einem Buchstaben. Eine Ausnahmen sind Laufvariablen in Schleifen,
z.B. i, j, k
.
Verwenden Sie ausnahmslos Englische Ausdrücke.
Typ | Wortart | Groß-/Kleinschreibung | Beispiel |
---|---|---|---|
Variablen, Felder | Substantiv, Adjektiv | start with lowercase | version, wordSize, full, ready |
Konstanten | Substantiv, Adjektiv | all-uppercase | VERSION, WORD_SIZE, FULL, READY |
Types | Substantiv | start with uppercase | File, TextFrame |
Prozeduren | Verb | start with lowercase | writeString |
Funktionen | Substantiv, Adjektive | start with lowercase | position, empty equals |
Packages | Substantiv | all lowercase | swing, util |
Namen mit mehreren Wörtern werden in Java üblicherweise mit Camel Case getrennt, z.B. wordSize
oder writeString
.
Konstanten bilden einen Ausnahme da diese durch den Underscore "_" getrennt werden.
Packages bestehen nur aus einzelnen Wörtern, können aber hierarchisch angeordnet werden. Zum Beispiel at.jku.ssw
.
Kommentare
- Qualität vor Quantität
- Kommentieren Sie nur wichtige Abschnitte, Annahmen, Verhalten, das nicht aus dem Quellcode ersichtlich ist.
- Wie für Variablennamen gilt: English only!