3.6 KiB
3.6 KiB
Refactoring Guide - MainWindow
Übersicht
Dieses Dokument beschreibt, wie das Refactoring der main_window.py verwaltet wird.
Feature Flags
Das Refactoring verwendet Feature Flags für schrittweise Migration:
USE_GITEA_HANDLER- Gitea/Git OperationenUSE_PROCESS_HANDLER- Prozess-ManagementUSE_PROJECT_HANDLER- Projekt-OperationenUSE_UI_HELPERS- UI Hilfs-FunktionenENABLE_DEBUG_LOGGING- Debug-AusgabenFORCE_ORIGINAL_IMPLEMENTATION- Notfall-Override
Verwaltung
CLI-Tool verwenden
# Status anzeigen
python manage_refactoring.py status
# Einzelnen Handler aktivieren
python manage_refactoring.py enable gitea
python manage_refactoring.py enable process
python manage_refactoring.py enable project
python manage_refactoring.py enable ui
# Alle deaktivieren
python manage_refactoring.py disable-all
# Spezifisches Flag setzen
python manage_refactoring.py set ENABLE_DEBUG_LOGGING true
# Test-Konfiguration erstellen
python manage_refactoring.py test-config
Umgebungsvariablen
Überschreiben die Konfigurationsdatei:
# Alle Handler aktivieren
export CPM_USE_NEW_HANDLERS=true
# Einzelne Flags
export CPM_USE_GITEA_HANDLER=true
export CPM_USE_PROCESS_HANDLER=false
Konfigurationsdatei
Gespeichert in: ~/.claude_project_manager/refactoring_config.json
{
"USE_GITEA_HANDLER": false,
"USE_PROCESS_HANDLER": false,
"USE_PROJECT_HANDLER": false,
"USE_UI_HELPERS": false,
"ENABLE_DEBUG_LOGGING": false,
"FORCE_ORIGINAL_IMPLEMENTATION": false
}
Test-Strategie
Phase 1: UI Helpers
Sicherste Option - nur UI-Hilfsfunktionen
python manage_refactoring.py disable-all
python manage_refactoring.py enable ui
python main.py # Testen
Phase 2: Project Manager
Projekt-Operationen hinzufügen
python manage_refactoring.py enable project
python main.py # Testen
Phase 3: Process Manager
Prozess-Management hinzufügen
python manage_refactoring.py enable process
python main.py # Testen
Phase 4: Gitea Operations
Komplexeste Operationen zuletzt
python manage_refactoring.py enable gitea
python main.py # Vollständig refactored
Rollback
Bei Problemen:
# Sofort alle neuen Handler deaktivieren
python manage_refactoring.py disable-all
# Oder Notfall-Override in der Anwendung
export CPM_FORCE_ORIGINAL_IMPLEMENTATION=true
Entwicklung
Neue Handler hinzufügen
- Handler-Klasse in
gui/handlers/erstellen - In
gui/handlers/__init__.pyexportieren - In
MainWindow._init_handlers()initialisieren - Feature Flag in
gui/config.pyhinzufügen - Facade-Methoden in
MainWindowerstellen
Handler implementieren
# In MainWindow - Facade Pattern
def some_method(self, *args):
"""Method description - Facade"""
if hasattr(self, '_handler') and self.REFACTORING_FLAGS.get('USE_MY_HANDLER', False):
return self._handler.some_method(*args)
else:
return self._original_some_method(*args)
def _original_some_method(self, *args):
"""Original implementation"""
# Existing code here
Monitoring
Logs prüfen für Refactoring-Status:
# In den Logs suchen
grep "Refactoring" app.log
grep "handler initialized" app.log
Bekannte Probleme
-
Duplizierte Methoden: Einige Methoden existieren mehrfach
manage_branches,link_to_gitea- Placeholder vs. Implementierungtest_gitea_connection,verify_repository_on_gitea- Verschiedene Versionen
-
Fehlende Methoden: Einige erwartete Methoden fehlen
show_git_status,commit_changes- Möglicherweise umbenannt
Diese werden in Phase 4 und 5 des Refactorings adressiert.