Files
gartenmanager/docs/development-standards.md
Faultier314 f301cd4044 chore: initial project setup with documentation
Add CLAUDE.md, development standards, project structure docs,
and domain model skeleton for the Gartenmanager project.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 21:53:57 +02:00

75 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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