Ältere Flask-Anwendungen enthalten häufig globale Zustände, direkte Erweiterungsbindung, unklare Abhängigkeiten und nicht mehr unterstützte Paketstände. Ein erfolgreicher Umbau beginnt mit einer reproduzierbaren Baseline und kleinen überprüfbaren Schritten.
Das Seminar verbindet Abhängigkeitsupgrade, Deprecation-Bereinigung, Factory- und Blueprint-Refactoring, Datenmigration und sicheren Rollout. Ein Big-Bang wird ausdrücklich vermieden.
Inhaltsübersicht
- Bestandsaufnahme und technische Baseline
- pytest-Struktur und Fixtures
- Abhängigkeiten und Deprecations aktualisieren
- Refactoring zu Factory, Blueprints und Services
- Schema-Migrationen und Datenänderungen
- Migrationsplan, Datenänderungen und Rollout
- Continuous Integration und Qualitätsgates
- Praxisprojekt und Wissenssicherung
Lernziele
- Technische Ausgangslage und kritische Pfade belastbar erfassen.
- Abhängigkeiten und Deprecations in kontrollierten Stufen aktualisieren.
- Globale Strukturen zu Factory, Blueprints und Services refaktorieren.
- Regressionstests und Migrationen als Sicherheitsnetz aufbauen.
- Rollout und Rückfallweg nach messbaren Kriterien planen.
Zielgruppe
Erfahrene Flask-Entwickler, Architekten und technische Verantwortliche für gewachsene Anwendungen mit Modernisierungsbedarf.
Voraussetzungen
Gute Flask- und Python-Kenntnisse, Erfahrung mit Git, Tests und Datenbanken. Eine eigene Altanwendung kann als Fallbeispiel dienen.
Seminarinhalte
1. Bestandsaufnahme und technische Baseline
Vor Änderungen werden Versionen, Erweiterungen, Betriebswege und kritische Funktionen belastbar erfasst.
- Schritt 1: Python-, Flask-, Werkzeug-, Jinja- und Erweiterungsstände inventarisieren.
- Schritt 2: Startpfade, globale Zustände, Importseiteneffekte und eigene Patches identifizieren.
- Schritt 3: Kritische Endpunkte, Datenflüsse und Betriebsabhängigkeiten priorisieren.
- Schritt 4: Reproduzierbare Entwicklungs- und Testumgebung als Ausgangsbasis herstellen.
2. pytest-Struktur und Fixtures
Tests erhalten wiederverwendbare, klar begrenzte Setups für Anwendung, Client, CLI und Daten.
- Schritt 1: Testverzeichnisse und Benennung nach pytest-Konventionen anlegen.
- Schritt 2: App-Fixture mit TESTING-Konfiguration und sauberem Teardown erstellen.
- Schritt 3: Client-, Runner- und Daten-Fixtures aus der App-Fixture ableiten.
- Schritt 4: Fixture-Sichtbarkeit und Scope so klein wie möglich halten.
3. Abhängigkeiten und Deprecations aktualisieren
Versionssprünge werden in kleinen, überprüfbaren Schritten statt als unkontrollierter Rundumschlag durchgeführt.
- Schritt 1: Abhängigkeiten sperren und Sicherheits- sowie Kompatibilitätsgrenzen dokumentieren.
- Schritt 2: Deprecation-Warnungen sammeln und nach Auswirkung priorisieren.
- Schritt 3: Zuerst transitive Bibliotheken, danach Flask und Erweiterungen stufenweise aktualisieren.
- Schritt 4: Nach jedem Schritt Testlauf, Startprobe und Datenbankzugriff prüfen.
4. Refactoring zu Factory, Blueprints und Services
Monolithische Einstiegsmodule werden ohne Big-Bang in klar getrennte Bestandteile überführt.
- Schritt 1: Globale Erweiterungsobjekte vom konkreten App-Objekt lösen.
- Schritt 2: Application Factory einführen und bestehende Konfiguration übernehmen.
- Schritt 3: Routen schrittweise in Blueprints und Geschäftslogik in Services verschieben.
- Schritt 4: Alte und neue Struktur während der Übergangsphase mit denselben Regressionstests prüfen.
5. Schema-Migrationen und Datenänderungen
Datenbankschemata werden versioniert, überprüft und mit sicheren Vorwärts- und Rückwärtswegen ausgeliefert.
- Schritt 1: Migrationswerkzeug initialisieren und Metadaten der Anwendung korrekt anbinden.
- Schritt 2: Autogenerierte Migrationen fachlich prüfen und manuelle Korrekturen dokumentieren.
- Schritt 3: Schemaänderung und Datenmigration trennen, wenn Laufzeit oder Sperren kritisch werden.
- Schritt 4: Upgrade, Downgrade und Neuaufbau der Datenbank in einer isolierten Umgebung testen.
6. Migrationsplan, Datenänderungen und Rollout
Technische Modernisierung wird mit Datenkompatibilität, Betriebsfenster und Rückfallstrategie abgestimmt.
- Schritt 1: Änderungen nach Risiko, Kopplung und Betriebswirkung in Releases schneiden.
- Schritt 2: Schemaänderungen rückwärtskompatibel vorbereiten und getrennt ausrollen.
- Schritt 3: Shadow-, Canary- oder Parallelbetrieb anhand der Plattformmöglichkeiten planen.
- Schritt 4: Rollback-Kriterien, Datensicherung und Nachkontrolle vor dem Produktivwechsel testen.
7. Continuous Integration und Qualitätsgates
Jede Änderung durchläuft reproduzierbare Prüfungen, bevor sie zusammengeführt oder ausgeliefert wird.
- Schritt 1: Installation aus Lockfile beziehungsweise definierten Abhängigkeiten in sauberer Umgebung durchführen.
- Schritt 2: Formatierung, Linting, Typprüfung, Tests und Sicherheitsprüfung in getrennten Schritten ausführen.
- Schritt 3: Testmatrix für unterstützte Python- und Flask-Stände festlegen.
- Schritt 4: Abbruchkriterien, Artefakte und nachvollziehbare Berichte als Merge-Gate konfigurieren.
Praxisprojekt
Eine bewusst veraltete Beispielanwendung wird inventarisiert, mit Tests eingefroren und schrittweise modernisiert. Das Ergebnis umfasst aktualisierte Abhängigkeiten, Factory-Struktur, Migrationen und einen dokumentierten Rolloutplan.
Methodik
Kurze fachliche Einordnungen wechseln mit Demonstrationen, geführten Umsetzungen, Fehleranalysen und eigenständigen Übungen. Jede größere Änderung wird durch einen Test, eine Diagnose oder eine betriebliche Prüfroutine abgesichert. Die Arbeitsstände werden schrittweise zu einem durchgängigen Beispielprojekt zusammengeführt.
Fachbereichsleitung / Trainerteam / Ansprechpartner
-

Lucas Beich
Telefon: + 49 (221) 74740055
E-Mail: lucas.beich@seminar-experts.de
Seminardetails
| Dauer: | 2 Tage ca. 6 h/Tag, Beginn 1. Tag: 10:00 Uhr, weitere Tage: 09:00 Uhr |
| Preis: |
Öffentlich oder Live Stream: € 1.198 zzgl. MwSt. Inhaus: € 3.400 zzgl. MwSt. |
| Teilnehmeranzahl: | min. 2 - max. 8 |
| Teilnehmer: | Erfahrene Flask-Entwickler, Architekten und technische Verantwortliche für gewachsene Anwendungen mit Modernisierungsbedarf. |
| Voraussetzungen: | Gute Flask- und Python-Kenntnisse, Erfahrung mit Git, Tests und Datenbanken. Eine eigene Altanwendung kann als Fallbeispiel dienen. |
| Standorte: | Stream Live, Inhaus/Firmenseminar, Berlin, Bremen, Darmstadt, Dresden, Erfurt, Essen, Flensburg, Frankfurt, Freiburg, Friedrichshafen, Hamburg, Hamm, Hannover, Jena, Kassel, Köln, Konstanz, Leipzig, Luxemburg, Magdeburg, Mainz, München, Münster, Nürnberg, Paderborn, Potsdam, Regensburg, Rostock, Stuttgart, Trier, Ulm, Wuppertal, Würzburg |
| Methoden: | Vortrag, Demonstrationen, praktische Übungen am System |
| Seminararten: | Öffentlich, Webinar, Inhaus, Workshop - Alle Seminare mit Trainer vor Ort, Webinar nur wenn ausdrücklich gewünscht |
| Durchführungsgarantie: | ja, ab 2 Teilnehmern |
| Sprache: | Deutsch - bei Firmenseminaren ist auch Englisch möglich |
| Seminarunterlage: | Dokumentation auf Datenträger oder als Download |
| Teilnahmezertifikat: | ja, selbstverständlich |
| Verpflegung: | Kalt- / Warmgetränke, Mittagessen (wahlweise vegetarisch) |
| Support: | 3 Anrufe im Seminarpreis enthalten |
| Barrierefreier Zugang: | an den meisten Standorten verfügbar |
| Weitere Informationen unter + 49 (221) 74740055 |
Seminartermine
Die Ergebnissliste kann durch Anklicken der Überschrift neu sortiert werden.
