2. Piano d’Azione per Risoluzione Debito Tecnico (Service Locator Pattern)
Questo piano mira a eliminare l’istanziazione locale di SettingsManager e a pulire l’architettura generale delle dipendenze.
Obiettivo: Introdurre un ServiceRegistry in quantum-core per gestire l’accesso ai servizi singleton (SettingsManager, DataManager, ThemeManager) senza “Prop Drilling”.
Fase 1: Infrastruttura Core (Quantum-Core)
-
Creare fire/core/service_registry.py.
-
Implementare la classe statica ServiceRegistry con metodi register(name, instance) e get(name).
-
Aggiungere gestione errori robusta (se il servizio non esiste).
-
Fase 2: Bootstrap (Main)
2. Modificare fire/main.py.
- Dopo aver istanziato SettingsManager e DataManager, registrarli immediatamente nel ServiceRegistry.
Fase 3: Refactoring Consumatori (Fire-App)
3. Modificare fire/synapses/backtest/backtest_tab_widget.py.
- Rimuovere from fire.settings_manager import SettingsManager.
- Importare ServiceRegistry.
- Sostituire settings_mgr = SettingsManager() con settings_mgr = ServiceRegistry.get(“settings”).
- (Opzionale/Graduale) Estendere l’uso ad altri componenti che necessitano di servizi (es. ThemeManager che è spesso usato staticamente ma potrebbe beneficiare del registry).