Das Thema “Code Style” ist gerade für Anfänger im Bereich der Programmierung nicht immer so leicht umzusetzen. In diesem Beitrag geht es zunächst einmal um die optische Optimierung des Codes. Wie du Variablen und Methoden nach den Konventionen schreibst, habe ich hier bereits aufgeschrieben. Nun geht es aber um einen ordentlichen Style, damit man deinen Code auch gut lesen kann.
Um das Ganze anschaulich und nachvollziehbar zu machen, nehmen wir das Beispiel der Klasse Computer. Der Computer hat bestimmte Eigenschaften und kann bestimmte Dinge tun. Er hat Variablen, Konstanten und natürlich auch Methoden.
Legen wir zunächst die Klasse Computer an:
public class Computer {
}
Nun sollten wir uns etwas Generelles überlegen: Die Zeilen- und Zeichenabstände! Es hat sich bei meiner Arbeit etabliert und als gut erwiesen, dass man einen Tababstand von zwei Zeichen einstellt – das kann in der Regel in deiner IDE eingestellt werden.
Weiterhin macht es durchaus Sinn, verschiedene Gruppen von Klassenvariablen optisch zu trennen.
Bleiben wir bei unserem Computer-Beispiel und definieren aber erst einmal die verschiedenen Variablen die so ein Computer hat: Festplattenplatz, Arbeitsspeichergröße, Cachegröße, Lüfterabmessung, Gehäusetyp, Bezeichnung, usw…
public class Computer {
private int hddSize;
private String bez;
private int ram;
private static final String MOD = "Testmodell";
private double gw;
private int cache;
private String typ;
private int breite;
}
Hier werden auf den ersten Blick gleich mehrere Probleme deutlich: Zum einen ist alles drucheinander und wir können nicht erkennen, was genau zusammengehört. Ein weiteres Problem ist auch, dass die Benennung unserer Variablen schlecht gewählt ist. Was ist zum Beispiel bez? Eine Bezeichnung, könnte man meinen, doch welche genau? Die Bezeichnung der Festplatte oder die des Computers?
Ich höre so manchen rufen “Dann schreib’ doch Kommentare ran” … okay, schauen wir uns das an:
public class Computer {
// Grösse der Festplatte in Kilobyte
private int hddSize;
// Bezeichnung des Computers
private String bez;
// Grösse des Arbeitsspeichers
private int ram;
// Modellbezeichnung des Computers
private static final String MOD = "Testmodell";
// Gewicht des Computers
private double gw;
// Grösse des Cache
private int cache;
// Der Gehäusetyp
private String typ;
// Die Abmessung des Lüfters
private int breite;
}
An dieser Stelle merken wir (hoffentlich), dass das so keinen Sinn macht. Deswegen benutzen wir ab sofort einfach “sprechende Variablen”. Wir benennen unsere Variablen also einfach nach genau dem, was sie sind und was sie tun. Wenn wir schon dabei sind, dann fassen wir unsere Variablen auch am Besten gleich in Gruppen zusammen. Hier bleibt dir überlassen ob du sie nach ihrer Verwendung oder nach Datentypen gruppierst. Der Einfachheit halber fassen wir sie in diesem Beispiel einfach erstmal nach ihren Datentypen zusammen:
public class Computer {
private static final String MODELL = "Testmodell";
private int groesseDerFestplatteInMb;
private int groesseDesArbeitsspeichersInMb;
private int groesseDesCacheInMb;
private int abmessungLuefter;
private double computerGesamtzGewichtInKg;
private String computerBezeichnung;
private String gehaeuseTyp;
}
Natürlich ist das nicht der ultimative Weg – wir könnte hier auch tatsächlich mit einem Kommentar arbeiten und dort bestimmen, dass alle Grössenangaben immer in MegaByte angegeben sind und uns die entsprechende Bezeichnung sparen.
Auch die Abmessung des Lüfters könnte thematisch besser zum Computergewicht und der -bezeichnung passen. Dann könnte das Ganze auch so aussehen:
public class Computer {
private static final String MODELL = "Testmodell";
// Alle Groessenangaben in MegaByte
private int groesseDerFestplatte;
private int groesseDesArbeitsspeichers;
private int groesseDesCache;
private int abmessungLuefter;
private double computerGesamtzGewichtInKg;
private String computerBezeichnung;
private String gehaeuseTyp;
}
Es gibt immer mehr als einen Weg, trotzdem hoffe ich, dass die Vorgehensweise ersichtlich wird auch wenn sie – je nach Projekt – variieren kann und sogar sollte!
Und noch ein Hinweis: Verzichte in Kommentaren und erst recht in deinen Variablenbezeichnungen auf die Verwendung von Umlauten und Sonderzeichen. Nicht jeder Compiler oder jede IDE kommt damit klar!
Die richtige Verwendung von Kommentaren und im speziellen das Java-DOC wird in einem separaten Artikel noch behandelt.
