Initial commit
Dieser Commit ist enthalten in:
161
REFACTORING_GUIDE.md
Normale Datei
161
REFACTORING_GUIDE.md
Normale Datei
@ -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.
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren