Android-Entwicklungsrichtlinien
Bearbeiten1. Clean-Code-Richtlinien anwenden ✨
- 📖 Lesbarer Code: Schreiben Sie Code, der leicht zu lesen und zu verstehen ist. Verwenden Sie aussagekräftige Namen und eine einheitliche Formatierung.
- 🔧 Kleine Funktionen: Funktionen sollten klein sein und nur eine Sache tun.
- 🚨 Fehlerbehandlung: Behandeln Sie Ausnahmen elegant mit
try-catch-Blöcken und geben Sie aussagekräftige Fehlermeldungen aus. - ♻️ Codeduplizierung vermeiden: Extrahieren Sie wiederverwendbaren Code in Funktionen oder Klassen.
2. Programmierstandards 📝
🔤 Namenskonventionen
Befolgen Sie einheitliche Namenskonventionen für Klassen, Methoden, Variablen und Ressourcen:
- 📦 Klassen:
PascalCase - 🔧 Methoden & Variablen:
camelCase - 🔒 Konstanten:
UPPER_SNAKE_CASE - 📁 Ressourcen: Verwenden Sie Präfixe zur besseren Übersicht (z. B.
activity_main.xml,ic_launcher.png)
🎨 Codeformatierung & Linter
Halten Sie sich an die Kotlin-Programmierkonventionen. Verwenden Sie detekt zur automatischen Prüfung des Codestils und zur statischen Analyse. Hier ist die detekt.yml-Konfiguration, die wir für unsere Projekte verwenden:
# Naming rules
naming:
ConstructorParameterNaming:
active: false
VariableNaming:
active: false
# Style rules
style:
ForbiddenComment:
active: false
MaxLineLength:
active: true
maxLineLength: 120
# Complexity rules
complexity:
TooManyFunctions:
ignorePrivate: true
🗒️ Dokumentation
Kommentare und Dokumentation: Schreiben Sie klare Kommentare, wo nötig, aber bevorzugen Sie selbsterklärenden Code. Verwenden Sie KDoc zur Dokumentation komplexer Funktionen und Klassen.
3. SOLID-Prinzipien anwenden 🛠️
- Single-Responsibility-Prinzip: Jede Klasse oder Funktion sollte eine Verantwortlichkeit haben.
- Open/Closed-Prinzip: Code sollte offen für Erweiterungen, aber geschlossen für Änderungen sein. Verwenden Sie Schnittstellen und abstrakte Klassen, um Funktionalität hinzuzufügen, ohne bestehenden Code zu verändern.
- Liskov-Substitutionsprinzip: Subtypen müssen für ihre Basistypen einsetzbar sein, ohne die Korrektheit zu beeinträchtigen.
- Interface-Segregation-Prinzip: Verwenden Sie kleine, spezifische Schnittstellen statt großer, allgemeiner.
- Dependency-Inversion-Prinzip: Hängen Sie von Abstraktionen ab und nicht von konkreten Implementierungen.