Files
ClaudeProjectManager-main/REFACTORING_GUIDE.md
Claude Project Manager ec92da8a64 Initial commit
2025-07-07 22:11:38 +02:00

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 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

# 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

  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

# 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

  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.