Jede Funktion macht genau eine Sache
Damit wird sichergestellt das dieser eine klare API und Funktion hat und der Nutzer einer Methode nicht überrascht wird, zB indem es zu einem unerwarteten Seiteneffekt führt. Beispiele:
- „readPersonById“ ändern zudem auch den Status in der DB, weil es den Zugriff protokolliert
- „formatDate“ vom DateFormatter führt zu einem Fehler, weil statisch auf eine Lokalisierungsdatei zugegriffen wird, die erst geladen werden muss, welche sich aber in einem anderen Modul befindet
- „readFile“ löscht auch die Datei nach dem einlesen
Sollte lesbar sein
Variablen und Methoden drücken das aus, für was sie stehen z.B.
- „Magic Numbers“ wurden als Konstanten definiert und sprechend benannt
- Komplizierte IF Prüfungen wurden als eigene benannte Funktionen extrahiert
dadurch sollte sich eine Art lesbarer Code ergeben.
Kommentare sollten weitgehend nicht notwendig sein
Durch die Verwendung von sprechenden Methoden- und Variablennamen sind weitere Kommentare nicht notwendig. Wenn überhaupt dann auf Klassen bzw. Public-Methoden ebene ein Verweis auf JIRA oder Confluence stehen, bzw. die Verantwortung eines Services abgegrenzt werden.
Code einer Methode sollte der Erwartung entsprechen
Ein Entwickler sollte beim lesen der Implementierung einer Methode möglichst nicht überrascht werden. Da er aufgrund des Methodennamen bereits rückschließen konnte wie die Methode aufgebaut ist, bzw. was diese macht.
Der Code sollte einfach zu verstehen sein
Jeder im Team sollte den Code schnell erfassen und ändern können, z.B. nach einem Jahr wenn man selbst die fachlichen Anforderungen weitergehen vergessen hat, warum der Code so ist.