Skip to content

Latest commit

 

History

History
67 lines (59 loc) · 5.48 KB

LIESMICH.md

File metadata and controls

67 lines (59 loc) · 5.48 KB

GitHub Actions CodeQL Line Coverage Branch Coverage Mutation Coverage Warnings Bugs

In jedem Java Projekt sollte der gesamte Quelltext die gleichen Kriterien bei Stil, Formatierung, etc. verwenden. In diesem Projekt werden die Kodierungsrichtlinien zu meinen Vorlesungen an der Hochschule München zusammengefasst.

Dieses Projekt enthält neben der Dokumentation der wichtigsten Kodierungsrichtlinien auch gleichzeitig eine sinnvolle Konfiguration aller für Java kostenlos verfügbaren statischen Codeanalyse Tools mittels Maven. Diese dort enthaltenen und automatisch prüfbaren Richtlinien werden - soweit wie möglich - nicht mehr extra im Text erwähnt. Damit kann diese Projekt gleichzeitig als Vorlage für neue Projekte genutzt werden. Unterstützt werden aktuell folgende Tools:

Die automatisch prüfbaren Richtlinien können für CheckStyle und Error Prone auch direkt als Warnungen in der Entwicklungsumgebung IntelliJ angezeigt werden (nach der Installation des entsprechenden IntelliJ Plugins). Zusätzlich sind die IntelliJ Code Inspections gemäß meiner Richtlinien konfiguriert. Aktuell können diese allerdings noch nicht automatisch im Build überprüft werden (siehe #7). Insgesamt ist damit sichergestellt, dass immer die gleichen Warnungen angezeigt werden - egal wie und wo die Java Dateien weiterverarbeitet werden. Für SpotBugs und PMD ist der Umweg über das Build Management Tool Maven erforderlich (die entsprechenden IntelliJ Plugins sind leider aus meiner Sicht noch nicht ausgereift genug bzw. verwenden eine separate Konfiguration). Die Verwendung von Maven hat zudem den Vorteil, dass die Ergebnisse hinterher leicht in den Continuous Integration Server Jenkins eingebunden werden können. Eine beispielhafte Integration in GitHub Actions und Jenkins ist auch bereits vorhanden. Diese ist im eigenen Abschnitt Continuous Integration ausführlicher beschrieben. Ebenso sind mehrere externe Tools konfiguriert, die die Qualität der Pull Requests in diesem Repository bewerten, Details dazu sind im Abschnitt Integration externer Tools beschrieben.

Die Richtlinien sind in den Vorlesungen 2014/2015 entstanden und werden laufend ergänzt. Aktuell bestehen diese aus den folgenden Abschnitten:

Zur besseren Verdeutlichung der angesprochenen Themen sind diesem Projekt auch Java Beispiele angefügt, die sich möglichst genau an diese Richtlinien halten.

Ideen und Inhalte für diesen Styleguide lieferten verschiedene Bücher, insbesondere aber das Buch "The Elements of Java Style" [1]. Diese Bücher sind allesamt wegweisend für die Softwareentwicklung und sind damit Pflichtlektüre für Berufstätige in der Softwareentwicklung:

  • [1] "The Elements of Java Style", Vermeulen, Ambler, Bumgardner, Metz, Misfeldt, Shur und Thompson, Cambridge University Press, 2000
  • [2] "The Pragmatic Programmer. From Journeyman to Master", Andrew Hunt, David Thomas, Ward Cunningham, Addison Wesley, 1999
  • [3] "Code Complete: A Practical Handbook of Software Construction", Steve McConnell, Microsoft Press, 2004
  • [4] "Clean Code: A Handbook of Agile Software Craftsmanship", Robert C. Martin, Prentice Hall, 2008
  • [5] "Effective Java", Third Edition, Joshua Bloch, Addison Wesley, 2017
  • [6] "Refactoring: Improving the Design of Existing Code", Martin Fowler, Addison Wesley, 1999
  • [7] "Java by Comparison", Simon Harrer, Jörg Lenhard, Linus Dietz, Pragmatic Programmers, 2018

Die gesamten Dokumente dieser Kodierungsrichtlinien unterliegen der Creative Commons Attribution 4.0 International Lizenz. Der Quelltext aller Beispiele und Klassen unterliegt der MIT Lizenz.