- 1. Grundlagen asynchroner Programmierung
- Sync vs. Async
: Blockierende vs. nicht-blockierende Operationen
- Event-Loop-Prinzip
: Wie Python asynchrone Abläufe verwaltet
- Anwendungsfälle
: I/O-bound vs. CPU-bound Aufgaben
- 2. Pythons Async/Await Syntax
- Coroutinen
: async def und await Schlüsselwörter
- Task-Erstellung
: Unterschied zwischen Coroutinen und Tasks
- Fehlerbehandlung
: Exception-Handling in asynchronem Code
- 3. Asyncio-Bibliothek im Detail
- Event-Loop-Steuerung
: Manuelles vs. automatisches Loop-Management
- Future-Objekte
: Ergebnisabfrage asynchroner Operationen
- Nützliche Utilities
: asyncio.gather(), asyncio.wait()
- 4. Asynchrone I/O-Operationen
- Netzwerkkommunikation
: aiohttp für HTTP-Anfragen
- Datenbankzugriffe
: Async-Treiber für PostgreSQL/MySQL
- Dateisystemzugriffe
: Asynchrones Lesen/Schreiben mit aiofiles
- 5. Parallele Ausführung optimieren
- Task-Scheduling
: Priorisierung und Steuerung der Ausführung
- Semaphore
: Begrenzung gleichzeitiger Operationen
- Timeout-Steuerung
: Vermeidung von Hängern in Produktivsystemen
- 6. Asynchrone Web-Frameworks
- FastAPI
: Moderne async-capable API-Entwicklung
- Quart
: Asynchrone Alternative zu Flask
- Django Channels
: WebSockets und async-Unterstützung
- 7. Debugging und Performance-Analyse
- Logging-Strategien
: Nachvollziehbarkeit in async-Code
- Profiling-Tools
: Identifikation von Performance-Bottlenecks
- Common Pitfalls
: Typische Fallstricke und Lösungsansätze
- 8. Praxisübung: Async-Webcrawler
- Aufgabe
: Implementierung eines performanten Webcrawlers
- Bonus
: Integration mit asynchroner Datenbank
LernzieleDie Teilnehmer erlangen umfassende praktische Fähigkeiten in der asynchronen Python-Programmierung. Sie lernen Event-Loops zu steuern, asynchrone Libraries effektiv einzusetzen und Performanzprobleme zu identifizieren. Besonderer Fokus liegt auf praxisrelevanten Szenarien wie Webanwendungen und Datenbankzugriffen. Nach dem Seminar können Teilnehmer bestehenden Code asynchron refaktorieren und neue Projekte mit async-first-Ansatz entwickeln.
Zielgruppen- Python-Entwickler mit Grundkenntnissen in OOP
- Backend-Entwickler
, die Web-APIs erstellen
- Data Engineers
, die Performanz optimieren müssen