Richtlinien zur Codequalität in den Abgaben
Um die Punkte für Codequalität bei den Abgaben zu bekommen müssen die folgenden Richtlinien eingehalten werden.
Formatierung
- Nur ein Statement pro Zeile.
- Korrekte und konsistente Einrückung von Blöcken (min. zwei Leerzeichen, keine Tabs).
- Blockformatierung im K&R Stil
- Blöcke immer in geschweiften Klammern, auch wenn Sie nur ein Statement enthalten.
Benennung
- Identifier immer auf englisch
- Identifier für Variablen, Felder und Methoden in Caml case, Anfangsbuchstabe klein
- Identifier für Klassen in Caml case, Anfangsbuchstabe groß
- Identifier für Konstanten in CONSTANT_CASE
SVN
Sofern nicht explizit angegeben, sollen dürfen die Abgaben
nur die mitgelieferten Dateien der Aufgabenpakete
sowie die *.java
Dateien der Lösung enthalten. Insbesondere sollen keine *.class
oder *.jar
Dateien eingecheckt werden.
Kommentare
- Kommentare immer auf englisch.
- Klassen und deren Konstruktoren sollen mit Javadoc kommentiert werden.
- Methoden, deren Funktionalität nicht völlig durch ihren Namen beschrieben wird, sollen mitJavadoc kommentiert werden. (Im Zweifelsfall kommentieren.)
Exceptions
- Exceptions sollen nie pauschal als
Exception
gefangen werden. - Exceptions solle nie pauschal in einer
throws Exception
Klausel deklariert werden. RuntimeExceptions
sollen nie gefangen werden.
Programmstruktur
- Verwenden Sie
static
Variable nur in Zusammenhang mitfinal
zur Definition von Konstanten (d.h. Werte, die von keiner Eingabe abhängen.) - Verwenden Sie Methoden. Jede Methode (inklusive
main
) soll eine am Namen der Methode klar erkennbare Funktionalität implementieren, sonst muss sie in mehrere kleine Methoden zerlegt werden. Weitere Guidelines zur Größe von Methoden. - Vermeiden Sie Codeduplizierung. Gliedern Sie stattdessen Code in Methoden aus, wenn dieser mehrfach verwendet werden soll.
- Schleifen sollen immer eine nicht-triviale
Abbruchbedingung haben. (Das heißt, die Abbruchbedingung soll nie äquivalent zu
true
oderfalse
sein.) - While-Schleifen sollen nie mit
break
verlassen werden.
JUnit
Ab w06 ist es nötig, sinnvolle Unit-Tests in JUnit zu schreiben um die Punkte für Codequalität zu erhalten. Getestet werden müssen mindestens:
- alle
public
Methoden, außgenommen Getter und Setter Methoden - alle Hilfsmethoden, die an mehr als einer Stelle aufgerufen werden
Ressourcen
Ressourcen wie Dateien und Netzwerkverbindungen sollten immer
baldmöglichst geschlossen werden, vorzugsweise in einem
finally
Block. Standardeingabe, Standardausgabe und
Standarderror sollen nicht geschlossen werden.