-
Notifications
You must be signed in to change notification settings - Fork 0
Guidelines
-
wenn Collections/Arrays zurückgegeben werden, dann nur als Kopie
-> vermeidet Korrumption des internen Zustands
-
Nachrichten-Objekte sollen keine enthalten Logik enthalten
-> Logik gehört in die Bussines-Schicht, das vermeidet das eine Problemstellung in unterschiedlichen Layern gelöst wird (siehe. SRP)
- klare Trennung in Abstraktionsschichten
- Annotation aller Felder/Parameter/Return-Values mit
@NonNull
/@Nullable
-
keine Methodenaufrufe als Methodenparameter
-> bessere Wartbarkeit
new XySettings(oldxySettings.getSubscriptionsMap(), oldXySettings.getFooBarXySettings(), metadata.getId());
vs
new PushSettings(subscriptions, fooBarSettings, id);
-
Was/wie soll in der Lib dokumentiert werden?
-> JavaDoc an allen Typ- , Feld-, und Methodendeklarationen
-
Wie wird mit Dependencies der Lib umgegangen
-> Shading vs. Required-On-Classpath
- Tests in JUnit 5 und Assertions mit AssertJ
-
Logging von IO Backends <-> Lib
-> via Log-Callback das der Lib-Instance übergeben werden kann
-
Umgang mit Kommunikationsfehlern
-> fehlerhafte Daten frühzeitig erkennen und verwerfen um nicht das DomainModel zu korrupieren
- CodeStyle-Methoden:
% of methods | LOC |
---|---|
90% | max. 10 |
8% | max. 20 |
2% | max. 100 |
-> Lesbarkeit SRP
- CodeStyle-Klassen/Enums:
% of types | LOC |
---|---|
90% | max. 300 |
8% | max. 500 |
2% | max. 1000 |
-> Lesbarkeit SRP