Modulaire opbouw
Waarom VENV domein, toepassing en technische adapters van elkaar scheidt.
De actieve richting is een pragmatische laagopbouw:
- UI: pagina's en componenten tonen een taakgerichte werkruimte.
- Stores en composables: bewaren schermstatus en sturen gebruikersinteractie.
- Application: voert use-cases uit, bouwt viewmodellen en synchroniseert routes en selectie.
- Domain en ports: definiëren betekenis, invarianten en smalle contracten.
- Infrastructure: verbindt API, browseropslag, workers, ECharts, MapLibre en Leaflet.
Grenzen
UI-componenten consumeren applicatie- of domeinmodellen en geen ruwe API-vormen. Leverancierspecifieke details blijven in adapters. Bulkmeetdata wordt niet als gewone UI-state door de hele componentboom gestuurd.
Waarom dit helpt
- Leesbaarheid: namen en bestanden volgen het productdomein.
- Testbaarheid: omzettingen en regels kunnen zonder kaart of browser worden gecontroleerd.
- Vervangbaarheid: een kaart- of grafiekleverancier raakt een begrensde adapter.
- Prestaties: grote datasets blijven uit brede reactieve states.
- Veilige groei: nieuwe meetpunttypes kunnen een eigen classificatie en infographic krijgen zonder een algemene component vol uitzonderingen.
De architectuur gebruikt SOLID als reviewlens, niet als doel op zichzelf. Kleine, samenhangende functies en stabiele contracten gaan vóór abstracties voor hypothetische toekomstige variatie.