Seminar aus Softwareentwicklung: Programmierstil Style Guidelines für Java und .NET Klaus Lehner 9957635, [email protected] Seminar aus Softwareentwicklung: Programmierstil Style Guidelines für Java und .NET Übersicht Was sind Guidelines? Wozu Guidelines? Allgemeine Formatierung Namenskonventionen Deklarationen Statements Verzweigungen & Schleifen Whitespaces Dokumentation CheckStyle Anwendung in der Praxis Klaus Lehner, 9957635, [email protected] 2 / 18 Seminar aus Softwareentwicklung: Programmierstil Style Guidelines für Java und .NET Was sind Guidelines? Unverbindliche Richtlinien, wie Source Code zu schreiben ist, an die man sich halten sollte. Falls man sich an eine Regel nicht hält, soll man dies dokumentieren! Klaus Lehner, 9957635, [email protected] 3 / 18 Seminar aus Softwareentwicklung: Programmierstil Style Guidelines für Java und .NET Wozu Guidelines? Immer mehr Geld fließt in die Wartung von Source Code Fast keine Software wird immer vom Programmierer selbst gewartet Klaus Lehner, 9957635, [email protected] 4 / 18 Seminar aus Softwareentwicklung: Programmierstil Style Guidelines für Java und .NET Allgemeine Formatierungen Keine Tabulatoren Keine Pagebreaks Zeilenlänge auf 80 Zeichen beschränken Function1 (param1, param2, param3); Zeilenumbruch nach einem Komma totalSum Zeilenumbruch nach einem Operator Die neue Zeile an den Anfang des Ausdrucks ausrichten = a + b + c + d + e; for (tableNo = 0; tableNo < maxTable; tableNo += tableStep) Klaus Lehner, 9957635, [email protected] 5 / 18 Seminar aus Softwareentwicklung: Programmierstil Style Guidelines für Java und .NET Namenskonventionen (1) Syntaktische Namenskonventionen Pascal Case BackColor Camel Case backColor Uppercase MAXLEN Kein Case Sensitiv!!! Packages / Namespaces .NET Camel Pascal Klassen Pascal Interfaces Pascal Pascal; Präfix I Methoden Camel Pascal Felder, Parameter Property Konstanten Klaus Lehner, 9957635, [email protected] Java Camel --- Pascal Uppercase Pascal 6 / 18 Seminar aus Softwareentwicklung: Programmierstil Style Guidelines für Java und .NET Namenskonventionen (2) Semantische Namenskonventionen Englisch verwenden! Keine Abkürzungen Keine verneinten bool‘schen Variablen bool isNotError; : if (!isNotError) .. Iteratoren i, j, k, ... Repräsentation einer Anzahl nPoints, numberOfPoints Initialisierungsmethoden InitializeFontSet() Suchmethoden FindNext() Berechnungsmethoden ComputeAverage() Klaus Lehner, 9957635, [email protected] 7 / 18 Seminar aus Softwareentwicklung: Programmierstil Style Guidelines für Java und .NET Namenskonventionen (3) JavaBeans-Konventionen get / set / is public boolean isConnected() { return connected; } public String getName() { return this.name; } public setName(String n) { this.name = n; } Klaus Lehner, 9957635, [email protected] 8 / 18 Seminar aus Softwareentwicklung: Programmierstil Style Guidelines für Java und .NET Deklarationen Klassen- und Methodendeklarationen Nach jeder Methode 1 Zeile freilassen Variablendeklaration Nur gleichartige Variablen in einer Zeile deklarieren Immer am Anfang eines Blocks Keine äußerliegenden Variablen überdecken Klaus Lehner, 9957635, [email protected] Class Foo { int var; void FooMeth() { int var; if (keypressed) { int var; : } // if } // FooMeth } // Foo 9 / 18 Seminar aus Softwareentwicklung: Programmierstil Style Guidelines für Java und .NET Statements max. 1 Anweisung pro Zeile Ausnahme: For-Schleife Zusammengehörende Statements nacheinander schreiben myObject.message1(); myObject.message2(); counter++; myObject.message3(); myObject.message1(); myObject.message2(); myObject.message3(); counter++; Bei Schleifen und Verzweigungen immer geschwungene Klammern verwenden Klaus Lehner, 9957635, [email protected] 10 / 18 Seminar aus Softwareentwicklung: Programmierstil Style Guidelines für Java und .NET Verzweigungen if (condition) { statements; } if (condition) { statements; } else { statements; } if (condition) { statements; } else if (condition) { statements; } else { statements; } Klaus Lehner, 9957635, [email protected] switch (value) { case 1: statements; /* fall through */ case 2: statements; break; case 3: statements; break; default: statement; break; } 11 / 18 Seminar aus Softwareentwicklung: Programmierstil Style Guidelines für Java und .NET Schleifen & try...catch for (initialization; condition; update) { statements; } while (condition) { statements; } do { statements; } while (condition); Klaus Lehner, 9957635, [email protected] try { statements; } catch (Exception e) { statements; } try { statements; } catch (Exception e) { statements } finally { statements; } 12 / 18 Seminar aus Softwareentwicklung: Programmierstil Style Guidelines für Java und .NET Abstände Leerzeichen zur besseren Lesbarkeit einführen vor und nach Operatoren nach Kommas counter=1; grandTotal=invoice.total()+getAmountDue(); grandTotal=Discounter.discount(grandTotal,this); counter = 1; grandTotal = invoice.total() + getAmountDue(); grandTotal = Discounter.discount(grandTotal, this); Klaus Lehner, 9957635, [email protected] 13 / 18 Seminar aus Softwareentwicklung: Programmierstil Style Guidelines für Java und .NET Dokumentation „Goldene Regel“ Source Code, der es nicht wert ist, dokumentiert zu werden, ist es auch nicht wert, geschrieben zu werden. Klaus Lehner, 9957635, [email protected] 14 / 18 Seminar aus Softwareentwicklung: Programmierstil Style Guidelines für Java und .NET Code Beautifier CheckStyle Command Tool JBuilder Plugin „Compiler“, der nach Guideline-Verletzungen sucht www.sourceforge.net nach „checkstyle“ suchen Klaus Lehner, 9957635, [email protected] 15 / 18 Seminar aus Softwareentwicklung: Programmierstil Style Guidelines für Java und .NET Praxisbeispiel VAI Linz Besprechung festgelegte Regeln für alle jederzeit zugänglich zusätzlicher Einsatz von CheckStyle Klaus Lehner, 9957635, [email protected] 16 / 18 Seminar aus Softwareentwicklung: Programmierstil Style Guidelines für Java und .NET Zusammenfassung Die Richtlinien verstehen Eine Liste von Richtlinien auswählen An diese Richtlinien glauben Sie schon während der Implementierung befolgen, nicht erst nachher Den Style zu einem Teil der Qualität machen Für Menschen, nicht Maschinen programmieren Klaus Lehner, 9957635, [email protected] 17 / 18 Seminar aus Softwareentwicklung: Programmierstil Style Guidelines für Java und .NET Happy Coding ;-) Klaus Lehner, 9957635, [email protected] 18 / 18