Kontakt aufnehmen

Schulungsübersicht

Tag 1 – Solide Grundlagen und Tools für zuverlässiges Python-Programmieren

Moderne Python-Funktionen sowie Typsysteme

  • Grundlagen der Typisierung, Generics, Protocols sowie TypeGuard
  • Ein Überblick zu Dataclasses, frozen-Dataclasses und attrs
  • Musterabgleichung (PEP 634+) sowie deren idiomatische Anwendung

Codequalität und Entwicklungswerkzeuge

  • Code-Formatter und Linter: black, isort, flake8, ruff
  • Statische Typprüfung mittels MyPy und Pyright
  • Pre-commit-Hooks sowie effiziente Entwicklerarbeitsabläufe

Projektmanagement und Packaging

  • Verwaltung von Abhängigkeiten mit Poetry und virtuellen Umgebungen
  • Strukturierung von Paketen, Einstiegspunkte sowie Best Practices zur Versionsvergabe
  • Erstellen und Veröffentlichen von Paketen auf PyPI bzw. privaten Repositories

Tag 2 – Design Patterns und architektonische Prinzipien

Design Patterns in Python

  • Erzeugungsmuster: Factory, Builder sowie Singleton (Python-taugliche Varianten)
  • Strukturmuster: Adapter, Facade, Decorator und Proxy
  • Verhaltensmuster: Strategy, Observer sowie Command

Architekturprinzipien

  • SOLID-Prinzipien in der Praxis bei Python-Anwendungen
  • Hexagonale bzw. saubere Architektur sowie deren Grenzen und Aufbau
  • Muster zur Abhängigkeitsinjektion und Verwaltung von Konfigurationen

Modularität und Wiederverwendbarkeit

  • Gestaltung von Bibliotheks- vs. Anwendungscode
  • Entwurf von APIs, stabile Schnittstellen sowie semantische Versionsvergabe
  • Umgang mit Konfigurationen, Geheimdaten sowie umgebungsspezifischen Einstellungen

Tag 3 – Konkurrenz, asynchrone Programmierung und Performance-Optimierung

Konkurrenz- und Parallelverarbeitung

  • Grundlagen der Thread-Verwaltung sowie Auswirkungen des GIL
  • Verwendung von Multiprocessing und Prozesspools für rechenintensive Aufgaben
  • Auswahl zwischen concurrent.futures und Multiprocessing je nach Szenario

Asynchrone Programmierung mit asyncio

  • Konzepte wie async/await, Event Loop sowie Abbruchmechanismen
  • Ausgestaltung asynchroner Bibliotheken sowie deren Interaktion mit synchronem Code
  • IO-basierte Strategien, Rückstellung bei Lastspitzen sowie Limitierung der Aufrufrate

Profiling und Optimierung

  • Analysewerkzeuge: cProfile, pyinstrument, perf sowie memory_profiler
  • Auswahl passender Verfahren zur Optimierung von kritischen Codeabschnitten; Einsatz von C-Erweiterungen oder Numba bei Bedarf
  • Messung der Latenzzeit, Durchsatzleistung sowie Ressourcennutzung

Tag 4 – Testautomatisierung, CI/CD, Beobachtbarkeit und Deployment

Teststrategien und Automatisierung

  • Unit-Tests mittels pytest sowie strukturierte Testdaten; organisatorische Aspekte von Tests
  • Property-basierte Tests mit Hypothesis und Contract Testing
  • Mocking, Monkeypatching sowie die Prüfung asynchroner Logik

CI/CD, Release-Prozess sowie Monitoring

  • Einbindung von Tests sowie Qualitätskontrollen in GitHub Actions bzw. GitLab CI
  • Erstellung reproduzierbarer Container mithilfe von Docker und mehrstufiger Build-Prozessen
  • Überwachung der Anwendungen: strukturierte Logging-Protokolle, Prometheus-Metriken sowie Tracing-Mechanismen

Sicherheit, Absicherung und weitere Best Practices

  • Überprüfung von Abhängigkeiten, Grundlagen zum Software Bill of Materials (SBOM) sowie Scans auf Sicherheitslücken
  • Vorgehensweisen für sicheres Programmieren: Eingabeprüfung und Management von Geheimdaten
  • Absicherung des Laufzeitumfelds: Ressourcenbegrenzungen, Benutzerrechte sowie Sicherheit von Containern

Abschlussprojekt und Reflexion

  • Gruppenübung: Entwurf und Umsetzung eines kleinen Dienstes mittels der im Kurs vermittelten Muster
  • Erstellung von Tests, Typprüfungen, Packete sowie einer passenden CI-Pipeline für das Projekt
  • Abschlussbewertung des Codes, fachliche Analyse sowie Entwicklung konkreter Verbesserungsvorschläge

Zusammenfassung und nächste Schritte

Voraussetzungen

  • Solide Kenntnisse im Python-Programmieren auf mittlerem Niveau
  • Bekanntheit mit objektorientierter Programmierung sowie grundlegenden Testverfahren
  • Erfahrung im Umgang mit der Kommandozeile und Git

Zielgruppe

  • Fortgeschrittene Python-Entwickler
  • Softwareingenieure, die für Codequalität und Architektur in Python verantwortlich sind
  • Technische Leiter sowie MLOps-/DevOps-Ingenieure, die mit Python-basierten Codebasen arbeiten
 28 Stunden

Teilnehmerzahl


Preis je Teilnehmer (exkl. USt)

Erfahrungsberichte (2)

Kommende Kurse

Verwandte Kategorien