Kontext
Spieler bauen Solar- und Windanlagen, Speicher und Förderprogramme auf und müssen mit Budget, Nachfrage, Wetter und Bürgerzufriedenheit umgehen.
Ansatz
Ich habe Simulationslogik weitgehend von React, DOM und localStorage getrennt, damit sich Regeln unabhängig von der Oberfläche testen und nachvollziehen lassen.
System
- React + TypeScript: Oberfläche
- Leaflet: Karteninteraktion
- Getrennte Domain- und Simulationslogik
- Python: unabhängiges Vergleichsmodell
- Playwright: Browser-Tests
Technische Entscheidungen
- Fachlogik nicht in UI-Komponenten verstecken.
- Unit-, Integration- und Browser-Tests einsetzen.
- Spielregeln und Modellgrenzen dokumentieren.
Was nicht funktioniert hat
Die Anwendung ist bewusst keine reale Netzsimulation. Ein Modell sollte nicht so tun, als wäre es genauer als seine Annahmen.
Ergebnis
Das Projekt umfasst Tests, ein unabhängiges Python-Vergleichsmodell, CI unter Linux und Windows sowie Docker-Deployment.
Was ich mitgenommen habe
Trennung macht nicht nur Tests leichter. Sie zwingt auch dazu, die Regeln des Modells unabhängig von seiner Darstellung zu erklären.