====== Coding standard ====== Merge requests sind immer willkommen! In Eclipse könnt Ihr unter //**Window > Preferences > Java > CodeStyle > Formatter**// folgende Formatdatei direkt importieren: {{ :wiki:eclipsesourceformat.xml |eclipsesourceFormat.xml}} ===== Encoding ===== * Alles, was i. d. R. nur Entwickler anfassen (Programmcode, Datenbank) ist UTF-8 (ohne BOM).\\ Das gilt insbesondere für SQL-Dateien. Bitte stellt Euren Editor entsprechend ein, Notepad++ konvertiert das Encoding auch. * Geklärt werden muss, wie wir mit Ini-Dateien umgehen, die von jedem Anwender (auch den technisch weniger versierten) befüllt werden. Seit 2019 erkennt der Windows Standard-Editor (Notepad) das Encoding und behält es bei, statt die Umlaute durch zwangsweises Speichern in CP-1252 zu zerstören. Wie gehen wir jetzt mit vorhandenen Ini-Dateien um? * einmalig nach UTF-8 konvertieren? * als CP-1252 beibehalten und beim Einlesen nach UTF-8 konvertieren? * Nichts tun? Was ist mit Anwendern, die schon selbst konvertiert haben? ===== Code Conventions ===== * Java Standard Naming Conventions * Einrückung: Leerzeichen * Deklarationen erfolgen so spät wie möglich, also nah an der Nutzung. * Jede Deklaration in eine einzelne Zeile (also nicht ''int a, b, c;'') * Der Scope wird so klein wie möglich gehalten, am liebsten ''private'' bzw. methoden- oder blocklokal. ===== Kommentare ===== * Kommentare an einer Deklaration, die beschreiben, was deklariert wird, deuten auf falsche Benennung. * Kommentare à la "ab hier passiert jetzt dies" deutet auf die Notwendigkeit eine neuen Methode hin. * Quellcode, der weg kann, wird nicht auskommentiert, sondern gelöscht. * Diskussionen über Code gehören nicht in den Code. * Ist an einer Stelle im Code etwas unklar, fragt auf Gitter oder im Forum, ob es Euch jemand erklären kann. * Leere Codeblöcke werden kommentiert, warum sie leer sind, nicht dass sie leer sind. * Debugging nicht auskommentieren, sondern löschen (system.out, Testmethoden, main nur zu Testzwecken ....) ===== JUnit-Tests ===== * In ein eigenes Verzeichnis ''tests'' auf der gleichen Ebene wie ''src''. * Bei Datenbankzugriffen benutzen wir als IK "123456789" ===== Philosophie ===== Nein, nicht alles unter RehaCommons! Neeeeeiinnn, das tun wir nicht! Ich bin schon dabei, das commons wieder auseinander zu ziehen. Architektonisch will ich in Richtung Onion / Hexagonal.