DevCenter ist eine modulare Python-IDE, die nach dem Prinzip der losen Kopplung entwickelt wurde. Die Architektur basiert auf drei Hauptschichten:
┌─────────────────────────────────────────────────────────────────┐
│ GUI Layer │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │
│ │ MainWindow │ │ Panels │ │ Dialogs │ │
│ │ │ │ Explorer │ │ NewProject, Settings │ │
│ │ │ │ Output │ │ Build │ │
│ │ │ │ Problems │ │ │ │
│ │ │ │ AI Panel │ │ │ │
│ └─────────────┘ └─────────────┘ └─────────────────────────┘ │
├─────────────────────────────────────────────────────────────────┤
│ Module Layer │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌───────────────┐ │
│ │ Editor │ │ Analyzer │ │ Builder │ │ AI Assistant │ │
│ │ │ │ │ │ │ │ │ │
│ │ CodeEdit │ │ Methods │ │ Kompilat │ │ AIService │ │
│ │ Highlight│ │ Encoding │ │ Icon │ │ DevLoop │ │
│ │ │ │ │ │ License │ │ │ │
│ └──────────┘ └──────────┘ └──────────┘ └───────────────┘ │
│ │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ FileManager │ │
│ │ SyncManager ProfilerBridge │ │
│ └───────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────┤
│ Core Layer │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ ProjectManager │ │ SettingsManager │ │ EventBus │ │
│ │ │ │ (Singleton) │ │ (Pub/Sub) │ │
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
- Verwaltet Projekt-Konfigurationen (ProjectConfig Dataclass)
- Erstellt Projekt-Struktur (src/, tests/, README.md, requirements.txt)
- Speichert/Lädt Projektdaten in
devcenter.json - Verwaltet Recent-Projects-Liste
- Zentraler Zugriff auf alle Einstellungen via
get_settings() - Dot-Notation für verschachtelte Schlüssel:
settings.get('editor.font_size') - Dataclass-basierte Konfiguration:
- EditorSettings
- BuildSettings
- AISettings
- SyncSettings
- AppearanceSettings
- Persistenz in
%APPDATA%/DevCenter/settings.json
- Ermöglicht lose Kopplung zwischen Modulen
- Event-Typen: FILE_OPENED, FILE_SAVED, ANALYSIS_COMPLETED, BUILD_STARTED, etc.
- Convenience-Methoden:
emit_file_opened(),emit_status_message() - Event-History für Debugging
CodeEditor (QPlainTextEdit):
- PythonHighlighter für Syntax-Highlighting
- LineNumberArea Widget
- Auto-Indent, Smart Backspace
- Signals:
file_modified,cursor_position_changed
MethodAnalyzer:
- AST-basierte Python-Code-Analyse
- Erkennt: Klassen, Methoden, Imports, Variablen
- Berechnet: Zyklomatische Komplexität
- Warnungen: Mutable Defaults, Bare Except, TODOs
EncodingFixer:
- Encoding-Erkennung via chardet
- UTF-8 Konvertierung
- BOM-Erkennung
Kompilator:
- PyInstaller-Wrapper
- BuildConfig Dataclass für Optionen
- Progress-Callbacks
- Spec-File-Generierung
IcoBuilder:
- Pillow-basierte Bild→ICO Konvertierung
- Multi-Size Icons (16-256px)
- Platzhalter-Generierung
LicenseGenerator:
- pip-licenses Integration
- Third-Party-Notices generieren
- Lizenz-Kompatibilitäts-Check
AIService:
- Anthropic Claude API Integration
- Async Completion mit History
- Spezialmethoden: generate_code, review_code, fix_error, explain_code
DevelopmentLoop:
- Automatisierte 3-Phasen-Entwicklung:
- Planner: Architektur erstellen
- Coder: Code implementieren
- Checker: Review durchführen
SyncManager:
- Datei-Synchronisation mit Muster-Ausschlüssen
- SQLite WAL-Checkpoint vor Backup
- Hash-Verifizierung nach Kopieren
- BackupScheduler für automatische Backups
ProfilerBridge:
- SQLite FTS5 Volltext-Index
- Datei-Indizierung mit Content-Vorschau
- Hash-basierte Duplikat-Erkennung
- Projekt-bezogene Filterung
- 3-Panel-Layout: Explorer | Editor+Output | AI Assistant
- Menüleiste, Toolbar, Statusbar
- Tab-Management für Editor
- Event-Bus Integration
- ExplorerPanel: QTreeView mit QFileSystemModel, Kontextmenü
- OutputPanel: Terminal mit QProcess, farbige Ausgabe
- ProblemsPanel: QTreeWidget für Fehler/Warnungen
- AIAssistantPanel: Chat-Interface mit Thread-Worker
- NewProjectDialog: Projekt-Erstellung mit Templates
- SettingsDialog: 5-Tab Einstellungen
- BuildDialog: Build-Wizard mit Progress
User Action → GUI Event → Module → Core/Storage
↓ ↓
EventBus ← Status/Results ←─┘
↓
GUI Update
- Erstelle
src/modules/neues_modul/ - Implementiere Hauptklasse
- Registriere Events im EventBus
- Erstelle Panel/Dialog falls nötig
- Integriere in MainWindow
- Erweitere
MethodAnalyzer._check_common_issues() - Füge AST-Visitor hinzu falls komplex
- Erstelle Problem mit passendem Severity
- Lazy Loading: Module werden bei Bedarf importiert
- Thread-Worker: AI-Anfragen und Build in separaten Threads
- FTS5 Index: Schnelle Volltext-Suche auch bei großen Projekten
- WAL Mode: Nicht-blockierende SQLite-Operationen
- API-Keys in System-Keyring (optional)
- Keine Netzwerk-Operationen ohne User-Aktion
- Sandbox für Prozess-Ausführung (QProcess)
Version: 1.0.0 | Stand: Januar 2026