Code Review
Im ersten Teil des SoPras finden innerhalb der Gruppen Code Reviews statt. Der Code soll dabei anhand der folgenden Kriterien bewertet werden:
- Vollständigkeit
- 1.1: Die geforderte Funktionalität wird umgesetzt. Es fehlen keine Features.
- 1.2: Es existieren keine Lücken bzw. leere Code-Blöcke.
- 1.3: Der Code kompiliert.
- 1.4: Warnungen der IDE werden berücksichtigt.
- 1.5: Die Designentscheidungen der Gruppe wurden beachtet.
- Lesbarkeit des Codes:
- 2.1: Kotlin Namenskonventionen werden beachtet.
- 2.2: Der Code wird richtig eingerückt und formatiert.
- 2.3: Lange Zeilen werden vermieden (max. 120).
- 2.4: Alle Methoden sind gut lesbar und die Funktionsweise ist jeweils verständlich.
- 2.5: Starke Verschachtelung bei Loops, If- und When-Statements wird vermieden.
- 2.6: Länge und Funktionsumfang von Methoden sind gut gewählt.
- 2.7: Lange Parameterlisten für Methoden wurden vermieden.
- 2.8: Klassen haben eine angemessene Größe. Eine sinnvolle Zuordnung von Funktionen und Daten ist erkennbar.
- Tests:
- 3.1: Alle Methoden sind durch die Tests abgedeckt
- 3.2: Relevante Problemfälle werden mit den Tests abgedeckt.
- 3.3: Randfälle werden getestet.
- 3.4: Die Tests sind nachvollziehbar. Es ist ersichtlich, was auf welche Weise getestet wird.
- Dokumentation:
- 4.1: Alle Klassen sind sinnvoll dokumentiert.
- 4.2: Alle öffentlichen Funktionen wurden dokumentiert.
- 4.3: Alle öffentlichen Properties wurden dokumentiert.
- 4.4: Parameter und Rückgabewerte sind verständlich beschrieben.
- Private Functions und Properties:
- 5.1: Die Namen sind aussagekräftig
- 5.2: Private Funktionen und Properties wurden klein genug gewählt, so dass die Funktionsweise selbsterklärend ist.
- Sonstiges:
- 6.1: Es wurde kein legacy Code verwendet, der mit @deprecated annotiert wurde.
- 6.2: Es existieren keine ungenutzten Imports.
- 6.3: Es existiert kein duplicate Code.
- 6.4: Es existieren keine Warnungen, die durch die default Code Inspections der IDE gemeldet werden
- 6.5: Check und Require wurden sinnvoll eingesetzt.