PTP - Java-Code-Konventionen
Namensgebung und Programmstruktur
Es ist guter Brauch in der Programmierung, möglichst "sprechende" Namen für Typen, Variablen, Konstanten, Objekte und Methoden zu vergeben, soweit die verwendete Sprache dies zuläßt. Java läßt dies zu!
Ausserdem sollte eine gewisse Systematik bei der Namensgebung erkennbar sein, die bei grossen Projekten häufig durch festgelegte Präfixe erzwungen wird. (Anm.: Das fordern wir nicht!) D.h.:
- Aus einem Bezeichner soll bereits eindeutig die Bedeutung im Programm erkennbar sein.
- Die Namen sollten kurz, aber verständlich sein.
- Java-Konventionen sind einzuhalten (Konstanten komplett groß geschrieben, Klassen mit großem Anfangsbuchstaben, Variablen, Instanzen und Methoden mit kleinem Anfangsbuchstaben, neuen Teilworte im Bezeichner wieder groß begonnnen usw.
- "_" (Unterstrich) am Anfang ist i.d.R. Bestandteilen von Systemmodulen vorbehalten.
- Methoden-Namen drücken typischerweise Tätigkeiten aus (
set..., get...
)
Java-Quelltexte sollten stets in einer möglichst gut lesbaren Form strukturiert werden. Dabei sollte insbesondere die Blockstruktur - auch bei Schleifen und if
-Konstrukten - so gestaltet werden, daß die Zugehörigkeit der Anweisungen zum Block leicht erkennbar ist. Damit wird Lesbarkeit erhöht und auch die Fehlersuche wesentlich erleichtert!
Die gewählte Struktur sollte konsequent durchgehalten werden!
Die meisten Editoren unterstützen die Formatierung durch automatische Einrückungen oder Vorgabe von Rumpfstrukturen diverser Konstrukte!
Es geht im übrigen nicht darum, einen möglichst kompakten Quellcode zu schreiben. Daher sind ein paar Leerzeilen zur optischen Trennung nicht verkehrt. Lange Zeilen sollten an geeigneten Stellen umgebrochen werden, um automatische Zeilenumbrüche beim Drucken und in Editoren zu vermeiden. Eine günstige Länge liegt bei ca. 72, max. 80 Zeichen.
Beispiel:
public class Xyz { try { statement; ... if (<expr>) { statement; ... else if (...) { statement; ... } } } catch (...) { statement; } }
Eine Übersicht über Java-Quell-Code-Konventionen ist bei Oracle/Sun zu finden.
Sonstiges:
- Es empfiehlt sich in vielen Fällen, ein Programm "top-down" zu entwickeln, d.h. ein großes Problem durch intensive Nutzung von Hilfsroutinen (häufig
static
) in viele kleine, überschaubare Teilprobleme zu zerlegen, von einer sehr groben Sichtweise stetig zu verfeinern, und diesen Teillösungen dann wiederum selbsterklärende Bezeichnungen zu geben (Bsp. "sucheNächstePrimzahl", "markierePrimzahl").
(Anm.: später sollte man den Code noch überarbeiten -> refactoring) - Anstatt n-mal einen (Zahlen-)Wert zu wiederholen, sollte unbedingt eine sinnvoll benannte Konstante definiert werden, die dann - bei Bedarf - an einer zentralen Stelle modifiziert werden kann! Dies Lesbarkeit wird wesentlich erhöht!
- Zumindest bei "Dienstleistungsmodulen/-klassen" ist es unumgänglich, die Schnittstelle - insbes. für
javadoc
- auch zu dokumentieren, damit ein Anwender die Funktion verstehen kann, ohne den Code lesen zu müssen!
Insbesondere Vor-, Nachbedingungen, erwartete Parameter, Rückgabewerte(bereiche) und Fehlerbehandlung sind zu erläutern! - Gute Namenswahl ersetzt Kommentierung nicht vollständig!