26 lines
877 B
Markdown
26 lines
877 B
Markdown
# Architektur-Prinzipien
|
|
|
|
Dieses Dokument beschreibt die grundlegenden Architekturprinzipien unseres Frameworks.
|
|
|
|
## 1. Immutabilität und Unveränderlichkeit
|
|
|
|
Wo immer möglich, sollten Objekte unveränderlich (immutable) sein. Dies verbessert die Voraussagbarkeit und Testbarkeit.
|
|
|
|
## 2. Final by Default
|
|
|
|
Alle Klassen sollten standardmäßig als `final` deklariert werden, es sei denn, es gibt einen konkreten Grund für Vererbung.
|
|
Begründung:
|
|
- Vermeidet unbeabsichtigte Vererbungshierarchien
|
|
- Verbessert die Kapselung
|
|
- Ermöglicht interne Änderungen, ohne Kinderklassen zu beeinflussen
|
|
|
|
## 3. Explizite über Implizite
|
|
|
|
- Alle Abhängigkeiten sollten explizit injiziert werden
|
|
- Keine globalen Zustände oder Singletons
|
|
- Typen immer explizit deklarieren
|
|
|
|
## 4. Modularität
|
|
|
|
Jedes Modul sollte in sich geschlossen sein und minimale Abhängigkeiten nach außen haben.
|