Dieser Commit ist enthalten in:
Claude Project Manager
2025-07-07 22:11:38 +02:00
Commit ec92da8a64
73 geänderte Dateien mit 16367 neuen und 0 gelöschten Zeilen

161
REFACTORING_GUIDE.md Normale Datei
Datei anzeigen

@ -0,0 +1,161 @@
# 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 Operationen
- `USE_PROCESS_HANDLER` - Prozess-Management
- `USE_PROJECT_HANDLER` - Projekt-Operationen
- `USE_UI_HELPERS` - UI Hilfs-Funktionen
- `ENABLE_DEBUG_LOGGING` - Debug-Ausgaben
- `FORCE_ORIGINAL_IMPLEMENTATION` - Notfall-Override
## Verwaltung
### CLI-Tool verwenden
```bash
# 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:
```bash
# 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`
```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
```bash
python manage_refactoring.py disable-all
python manage_refactoring.py enable ui
python main.py # Testen
```
### Phase 2: Project Manager
Projekt-Operationen hinzufügen
```bash
python manage_refactoring.py enable project
python main.py # Testen
```
### Phase 3: Process Manager
Prozess-Management hinzufügen
```bash
python manage_refactoring.py enable process
python main.py # Testen
```
### Phase 4: Gitea Operations
Komplexeste Operationen zuletzt
```bash
python manage_refactoring.py enable gitea
python main.py # Vollständig refactored
```
## Rollback
Bei Problemen:
```bash
# 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
1. Handler-Klasse in `gui/handlers/` erstellen
2. In `gui/handlers/__init__.py` exportieren
3. In `MainWindow._init_handlers()` initialisieren
4. Feature Flag in `gui/config.py` hinzufügen
5. Facade-Methoden in `MainWindow` erstellen
### Handler implementieren
```python
# 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:
```bash
# In den Logs suchen
grep "Refactoring" app.log
grep "handler initialized" app.log
```
## Bekannte Probleme
1. **Duplizierte Methoden**: Einige Methoden existieren mehrfach
- `manage_branches`, `link_to_gitea` - Placeholder vs. Implementierung
- `test_gitea_connection`, `verify_repository_on_gitea` - Verschiedene Versionen
2. **Fehlende Methoden**: Einige erwartete Methoden fehlen
- `show_git_status`, `commit_changes` - Möglicherweise umbenannt
Diese werden in Phase 4 und 5 des Refactorings adressiert.