75 lines
2.0 KiB
Markdown
75 lines
2.0 KiB
Markdown
|
|
# Entwicklungsstandards
|
|||
|
|
|
|||
|
|
Allgemein gültige Standards für die Arbeit in diesem Repository.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Sprache
|
|||
|
|
|
|||
|
|
- **Code-Bezeichner** (Variablen, Funktionen, Klassen, Dateinamen): Englisch
|
|||
|
|
- **Domänenobjekte** (z. B. `Pflanze`, `Beet`, `Aussaatkalender`): Deutsch erlaubt, wenn es die Lesbarkeit erhöht
|
|||
|
|
- **Commit-Messages**: Englisch, Imperativ (`Add`, `Fix`, `Refactor`)
|
|||
|
|
- **Dokumentation & Kommentare**: Deutsch
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Git
|
|||
|
|
|
|||
|
|
### Branching
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
main – stabiler Produktionsstand
|
|||
|
|
feature/<name> – neue Features
|
|||
|
|
fix/<name> – Bugfixes
|
|||
|
|
chore/<name> – Wartung, Abhängigkeiten, Konfiguration
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Commit-Messages
|
|||
|
|
|
|||
|
|
Format: `<type>: <short description>` (max. 72 Zeichen)
|
|||
|
|
|
|||
|
|
| Type | Wann |
|
|||
|
|
|---|---|
|
|||
|
|
| `feat` | Neues Feature |
|
|||
|
|
| `fix` | Bugfix |
|
|||
|
|
| `refactor` | Code-Umbau ohne Verhaltensänderung |
|
|||
|
|
| `test` | Tests hinzufügen/anpassen |
|
|||
|
|
| `docs` | Nur Dokumentation |
|
|||
|
|
| `chore` | Build, Dependencies, Konfiguration |
|
|||
|
|
|
|||
|
|
Beispiel: `feat: add watering schedule to plant detail view`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Code-Qualität
|
|||
|
|
|
|||
|
|
- Keine auskommentierten Code-Blöcke committen
|
|||
|
|
- Keine `console.log` / `print`-Statements in Produktionscode
|
|||
|
|
- Funktionen bleiben klein und haben eine einzige Verantwortung
|
|||
|
|
- Keine spekulativen Abstraktionen – erst abstrahieren, wenn ein Muster dreimal vorkommt
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Testing
|
|||
|
|
|
|||
|
|
- Unit-Tests für Geschäftslogik (Berechnungen, Transformationen)
|
|||
|
|
- Integrationstests an Systemgrenzen (API, Datenbank)
|
|||
|
|
- Keine Mocks für die Datenbank in Integrationstests
|
|||
|
|
- Testdatei liegt neben der zu testenden Datei oder in einem `__tests__`/`tests`-Verzeichnis auf gleicher Ebene
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Fehlerbehandlung
|
|||
|
|
|
|||
|
|
- Fehler nur an Systemgrenzen abfangen (User-Input, externe APIs, Datenbankzugriff)
|
|||
|
|
- Intern Fehler propagieren, nicht still schlucken
|
|||
|
|
- Keine Fallbacks für Szenarien, die nicht eintreten können
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Abhängigkeiten
|
|||
|
|
|
|||
|
|
- So wenig externe Abhängigkeiten wie möglich
|
|||
|
|
- Vor dem Hinzufügen einer Bibliothek prüfen: Wird sie wirklich gebraucht?
|
|||
|
|
- `package.json` / Lockfile immer committen
|