Files
Ai/TrafagSalesExporter/docs/ARCHITEKTUR_REVIEW_STATICS_HARDCODING_2026-05-15.md
T

2.7 KiB

Architekturreview: Static-Methoden und Hardcodings

Stand: 2026-05-15

Ergebnis

Viele static-Methoden sind im aktuellen Code nicht automatisch falsch. Reine Hilfsfunktionen ohne Zustand sind als static fachlich und technisch akzeptabel.

Das eigentliche Architekturthema ist nicht static selbst, sondern dass einige grosse Klassen fachliche Regeln, Datenimport, Filterung, KPI-Berechnung und Visualisierungsvorbereitung gleichzeitig enthalten.

Befunde

Prioritaet Bereich Befund Empfehlung
Medium HR KPI Testpersonen sind aktuell im Code ausgeschlossen. In appsettings.json oder DB-Tabelle HrKpiExclusionRules verschieben.
Medium Finance Vergleich Vergleich ist aktuell auf Jahr 2025 und Referenztext check.xlsx / Power BI Stand 29.04.2026 fixiert. Jahr auswählbar machen und Referenzstand aus Daten/Konfiguration lesen.
Medium Finance Reconciliation Hauswaehrung je Land wird im Service aufgelöst. Langfristig in Standort-/Finance-Konfiguration verschieben.
Low/Medium Database Seed Finance-Sollwerte, Budgetkurse und IC-Defaultregeln werden per Seed angelegt. Fuer Produktion Import/Pflegeoberflaeche vorsehen.
Low UI/Formatierung Viele kleine static-Formatierungs- und Mappingmethoden. Akzeptabel, solange sie klein und zustandslos bleiben.

Grosse Klassen

Klasse Umfang Bewertung
Services/HrKpi/HrKpiDashboardBuilder.cs ca. 1'145 Zeilen Zu viel Verantwortung in einer Klasse.
Services/ManagementCockpitService.cs ca. 811 Zeilen Analyse, Import, Aggregation und Hinweise liegen stark gebündelt.
Services/FinanceReconciliationService.cs ca. 370 Zeilen Noch akzeptabel, aber fachliche Teilregeln koennen spaeter ausgelagert werden.

Was korrekt ist

Diese Arten von static-Methoden sind unkritisch:

  • Textnormalisierung
  • Datum-/Zahlenformatierung
  • kleine Parser
  • einfache Mappingfunktionen
  • lokale UI-Formatierung
  • deterministische Berechnung ohne externe Abhängigkeiten

Was verbessert werden sollte

  1. HR-Testpersonen aus dem Code in Konfiguration oder DB verschieben.
  2. Finance-Vergleich von fixem Jahr 2025 auf auswählbares Jahr umstellen.
  3. Referenztext und Referenzstand nicht hart im UI pflegen.
  4. Hauswaehrungen je Land aus Konfiguration oder Finance-Stammdaten lesen.
  5. Grosse Klassen schrittweise aufteilen:
    • Reader
    • Filter
    • Rules
    • Metrics
    • VisualBuilder

Empfehlung

Nicht alle static-Methoden entfernen. Das waere kein sinnvoller Refactor.

Zuerst sollten die fachlich veraenderbaren Regeln aus dem Code herausgezogen werden. Danach kann die Klassenstruktur gezielt verkleinert werden.