Eventgesteuerte Programmierung mit Python umsetzen
Eventgesteuerte Programmierung mit Python umsetzen
Ein praxisnaher Leitfaden zur Entwicklung ereignisbasierter Anwendungen, Frameworks und Architekturen mit Python
Inhaltsverzeichnis
Kapitel 1: Was ist eventgesteuerte Programmierung?
- Grundlagen des Event-Driven Programming (EDP)
- Unterschied zu prozeduralem und nebenläufigem Code
- Ereignisse, Handler, Dispatcher – Begriffe verstehen
- Anwendungsbereiche: GUIs, Netzwerke, Echtzeitverarbeitung
Kapitel 2: Events und Callbacks manuell umsetzen
- Funktionen als Ereignis-Handler
- Listener/Subscriber Pattern in Python
- Mini-Projekt: Eigener EventDispatcher mit dict-basierten Listenern
Kapitel 3: Observer-Pattern und Signale
- Das Observer-Muster implementieren
- Signals und Slots nachbilden
- Mini-Projekt: Datenspeicher mit Änderungsbenachrichtigung
Kapitel 4: GUI-Ereignisse mit Tkinter und PyQt
- Grundlagen der GUI-Ereignisverarbeitung
- Button-Click, Mausklick, Tastendruck
- Mini-Projekt: Einfacher Event-Logger in GUI-Anwendung
Kapitel 5: Ereignisse in Netzwerk- und Serveranwendungen
- Events bei Datenempfang oder Verbindung
- select, selectors, socketserver verwenden
- Mini-Projekt: TCP-Server mit Event-Callbacks
Kapitel 6: AsyncIO und asynchrone Ereignisse
- Event Loop verstehen
- Coroutines als Event-Reaktion
- asyncio.Event, Queue, Task
- Mini-Projekt: Asynchroner Download-Manager
Kapitel 7: Pub/Sub-Architekturen in Python
- Publisher/Subscriber-Muster implementieren
- Verwendung von blinker, pyee, rxpy
- Mini-Projekt: Modulübergreifende Kommunikation mit Events
Kapitel 8: Ereignisse mit Watchdog, Filesystem und Sensoren
- Dateisystem-Events mit watchdog
- Beispiel: Reaktion auf Dateiänderungen oder -zugriffe
- Mini-Projekt: Automatisierter Bildverarbeiter bei Upload
Kapitel 9: Ereignisverarbeitung in Frameworks und APIs
- Event Hooks und Middleware in Web-Frameworks (z. B. Flask, FastAPI)
- Ereignisse in Datenpipelines (z. B. Airflow Sensoren, Hooks)
- Mini-Projekt: Ereignisgesteuerte REST-API mit Hooks und Logs
Kapitel 10: Best Practices und Fehlerszenarien
- Event-Sturm vermeiden (Debouncing, Throttling)
- Logging und Fehlerverfolgung bei Event-Handling
- Testbarkeit und Debugging in Event-Systemen
- Mini-Projekt: Robustes Eventsystem mit Retry und Logging
Anhang A: Python-Tools für eventgesteuerte Architektur
- asyncio, blinker, watchdog, rx, selectors, signal, queue
Anhang B: Vergleich verschiedener Eventmodelle
- Vergleich: Callback vs. Coroutine vs. Pub/Sub
- Wann welches Modell sinnvoll ist?
Anhang C: Übungsaufgaben mit Lösungen
- Eigenes Signal/Slot-System
- Dateisystemereignisse verarbeiten
- Event-getriebene Benutzerinteraktion mit PyQt
- Detaillierte Lösungen mit Schritt-für-Schritt-Erklärung