Katalog
/
Softwareentwicklung und Programmierung
/
Entwicklung verteilter C++-Anwendungen mit Qt 6, ZeroMQ und Protocol Buffers

Entwicklung verteilter C++-Anwendungen mit Qt 6, ZeroMQ und Protocol Buffers

Lernen Sie, wie moderne verteilte C++-Anwendungen mit Qt 6, ZeroMQ und Protocol Buffers konzipiert, entwickelt und getestet werden. Dieser fünftägige Kurs verbindet aktuelle C++-Entwicklungspraktiken mit grafischen Benutzeroberflächen, asynchroner Kommunikation, effizienter Datenserialisierung, automatisierten Tests und containerisierten Linux-Workflows. Die Teilnehmenden entwickeln schrittweise eine verteilte Anwendung, die aus einer Qt-basierten Benutzeroberfläche und miteinander kommunizierenden Backend-Komponenten besteht. Sie lernen, wartbaren C++-Code zu strukturieren, Ressourcen sicher zu verwalten, nebenläufige Aufgaben zu koordinieren und strukturierte Nachrichten zwischen Prozessen und Diensten auszutauschen. Der Kurs ist weitgehend unabhängig von bestimmten Nebenversionen der eingesetzten Software und von einer einzelnen Linux-Distribution konzipiert. Die Beispiele können mit C++17 oder C++20 unter Ubuntu, Rocky Linux oder einer anderen unterstützten Linux-Distribution umgesetzt werden.

Was werden Sie lernen?

Sie lernen, wie wartbare C++-Anwendungen entwickelt werden, die grafische Benutzeroberflächen, nebenläufige Verarbeitung und verteilte Kommunikation miteinander verbinden. Sie verwenden CMake für die Verwaltung von Projekten und Abhängigkeiten, entwickeln Benutzeroberflächen mit Qt Widgets, erhalten eine Einführung in Qt Quick und QML, implementieren ZeroMQ-Nachrichtenmuster und definieren effiziente Nachrichtenverträge mit Protocol Buffers.

• Moderne Sprach- und Ressourcenverwaltungskonzepte aus C++17 oder C++20 anwenden

• Anwendungen und Bibliotheken mit target-basiertem CMake strukturieren

• Desktop-Benutzeroberflächen mit Qt Widgets entwickeln

• Grundlagen von Qt Quick und QML verstehen

• Signale, Slots, Event Loops und das Qt-Objektmodell effektiv einsetzen

• Sichere Nebenläufigkeit und asynchrone Verarbeitung implementieren

• Verteilte Kommunikation mit ZeroMQ-Nachrichtenmustern gestalten

• Nachrichtenverträge mit Protocol Buffers definieren, generieren und weiterentwickeln

• Automatisierte Unit-, Komponenten- und Integrationstests erstellen

• Anwendungen in containerisierten Linux-Umgebungen entwickeln, erstellen und diagnostizieren

Voraussetzungen:

• Praktische Kenntnisse der C++-Grundlagen

• Vertrautheit mit Klassen, Vererbung, Funktionen und Containern der Standardbibliothek

• Grundkenntnisse in Linux und im Umgang mit Kommandozeilenwerkzeugen

• Allgemeine Kenntnisse zu Netzwerken und verteilten Anwendungen sind von Vorteil

• Vorkenntnisse in Qt, ZeroMQ oder Protocol Buffers sind nicht erforderlich

Kursübersicht*:

*Wir passen den Kursaufbau und die Inhalte an Ihre spezifischen Anforderungen und relevanten Anwendungsfälle an.

Tag 1: Modernes C++ und die Entwicklungsumgebung

Modul 1: Architektur verteilter C++-Anwendungen

• Merkmale von Desktop-, Client-Server- und verteilten Anwendungen

• Präsentations-, Domänen-, Kommunikations- und Infrastrukturkomponenten voneinander trennen

• Prozesse, Threads, Dienste und Nachrichtengrenzen verstehen

• Eine wartbare Projekt- und Repository-Struktur etablieren

Modul 2: Moderne Praktiken mit C++17 und C++20

• Automatische Ressourcenverwaltung mit RAII anwenden

• Smart Pointer und eindeutige Besitzmodelle verwenden

• Mit Move-Semantik, Lambda-Ausdrücken und modernen Standardbibliothekstypen arbeiten

• Optionale Werte, Varianten, Ranges und weitere ausgewählte Sprachfunktionen einsetzen

Modul 3: Projekte mit CMake erstellen

• Targets für Anwendungen, Bibliotheken und Tests erstellen

• Include-Pfade, Compilerfunktionen und verknüpfte Abhängigkeiten verwalten

• Projekte mit mehreren Verzeichnissen und wiederverwendbarer CMake-Konfiguration organisieren

• Anwendungsbestandteile generieren, installieren und paketieren

Modul 4: Linux-Entwicklung und Toolchain-Konfiguration

• Compiler, Build-Werkzeuge, Qt und externe Abhängigkeiten konfigurieren

• Mit GCC oder Clang und distributionsunabhängigen Projekteinstellungen arbeiten

• Build-Presets sowie getrennte Entwicklungs- und Release-Konfigurationen verwenden

• Reproduzierbare Umgebungen für Ubuntu, Rocky Linux oder eine andere unterstützte Distribution vorbereiten

Tag 2: Anwendungsentwicklung mit Qt 6

Modul 5: Qt-Architektur und zentrale Konzepte

• QObject, Parent-Child-Besitzverhältnisse und Metaobjektfunktionen verstehen

• Komponenten über Signale und Slots verbinden

• Mit Event Loop, Ereignissen und eingereihten Operationen arbeiten

• Zentrale Qt-Typen, Container, Timer und Anwendungsdienste verwenden

Modul 6: Benutzeroberflächen mit Qt Widgets entwickeln

• Fenster, Dialoge, Steuerelemente und Layouts erstellen

• Benutzeroberflächen mit Qt Designer und generierten Formularen gestalten

• Aktionen, Menüs, Symbolleisten und Benutzerinteraktionen verwalten

• Benutzeroberflächencode von der Anwendungslogik trennen

Modul 7: Anwendungsdesign mit Model/View

• Modelle, Views, Delegates und Auswahlen verstehen

• Standardmodelle für Listen, Tabellen und Baumstrukturen verwenden

• Benutzerdefinierte Modelle für Anwendungsdaten entwickeln

• Benutzeroberflächen bei Änderungen der zugrunde liegenden Daten effizient aktualisieren

Modul 8: Benutzerdefinierte Oberflächen und Anwendungsverhalten

• Wiederverwendbare und angepasste Widgets erstellen

• Painting, Geometrie und Eingabeereignisse behandeln

• Einstellungen, Ressourcen, Übersetzungen und Anwendungszustände verwalten

• Reaktionsfähige Fehlerbehandlung und verständliches Benutzerfeedback entwickeln

Tag 3: Qt Quick, Nebenläufigkeit und automatisierte Tests

Modul 9: Einführung in Qt Quick und QML

• Deklarative Entwicklung von Benutzeroberflächen verstehen

• Komponenten, Eigenschaften, Bindings und Layouts in QML erstellen

• Mit Qt Quick Controls und visuellen Zuständen arbeiten

• Geeignete Einsatzbereiche von Qt Widgets und Qt Quick vergleichen

Modul 10: C++ und QML verbinden

• C++-Objekte und Datenmodelle für QML verfügbar machen

• C++-Funktionen aus deklarativen Oberflächen aufrufen

• Über Eigenschaften, Signale und Methoden kommunizieren

• Eine klare Trennung zwischen Benutzeroberfläche und Anwendungslogik erhalten

Modul 11: Moderne Nebenläufigkeit und asynchrone Verarbeitung

• Threads, Aufgaben, Futures und ereignisgesteuerte Operationen vergleichen

• Thread-Besitzverhältnisse und Objektaffinität in Qt verwalten

• Daten sicher zwischen Worker- und Benutzeroberflächenkomponenten austauschen

• Race Conditions, Deadlocks, blockierte Event Loops und unsichere Objektzugriffe vermeiden

Modul 12: Automatisierte Tests und Debugging

• Unit- und Komponententests für C++- und Qt-Code erstellen

• Qt Test, CTest und Test-Targets in das Projekt integrieren

• Signale, asynchrones Verhalten und Benutzeroberflächenkomponenten testen

• Debugger, Sanitizer, Protokollierung und Diagnoseinformationen einsetzen

Tag 4: Verteilte Nachrichtenkommunikation mit ZeroMQ

Modul 13: ZeroMQ-Architektur und Kommunikationsgrundlagen

• Kontexte, Sockets, Nachrichten und Transportmechanismen verstehen

• Innerhalb eines Prozesses, zwischen Prozessen und über TCP kommunizieren

• ZeroMQ-Sockets mit konventionellen Netzwerk-Sockets vergleichen

• Verbindungsaufbau, Warteschlangen und asynchrone Zustellung verwalten

Modul 14: Zentrale Nachrichtenmuster

• Request-Reply-Kommunikation implementieren

• Informationen mit Publish-Subscribe verteilen

• Arbeit mit Push-Pull-Pipelines aufteilen

• Muster anhand der Kommunikations- und Skalierungsanforderungen auswählen

Modul 15: Erweitertes Routing und Zuverlässigkeit

• Dealer-Router-Muster für die asynchrone Anfrageverarbeitung einsetzen

• Mit mehrteiligen Nachrichten und Nachrichtenumschlägen arbeiten

• Timeouts, Wiederholungsversuche, erneute Verbindungen und kontrolliertes Beenden verwalten

• Warteschlangengrenzen, Backpressure und Bedingungen für Nachrichtenverluste verstehen

Modul 16: ZeroMQ in Qt-Anwendungen integrieren

• ZeroMQ-Verarbeitung mit ereignisgesteuerten Qt-Anwendungen koordinieren

• Kommunikationsaufgaben vom Thread der Benutzeroberfläche isolieren

• Empfangene Daten über threadsichere Signale und Slots bereitstellen

• Kommunikationsdienste mit eindeutigen Lebenszyklus- und Besitzregeln gestalten

Tag 5: Protocol Buffers, Container und integrierte Entwicklung

Modul 17: Protocol Buffers für C++-Anwendungen

• Strukturierte Nachrichten in Protokolldefinitionsdateien festlegen

• C++-Code über CMake generieren und integrieren

• Nachrichten serialisieren und deserialisieren

• Enumerationen, wiederholte Felder, Maps und alternative Feldgruppen verwenden

Modul 18: Nachrichtenverträge und Schemaentwicklung

• Stabile Nachrichten für verteilte Komponenten entwickeln

• Feldnummern, Standardwerte und optionale Informationen verwalten

• Schemata unter Beibehaltung der Kompatibilität weiterentwickeln

• Protocol-Buffers-Nachrichten mit ZeroMQ-Umschlägen und Routinginformationen kombinieren

Modul 19: Containerisierte Linux-Entwicklung und Integrationstests

• Reproduzierbare Build- und Laufzeitcontainer erstellen

• Compiler, Qt-Bibliotheken und Anwendungsabhängigkeiten in Container-Images verwalten

• Kommunizierende Anwendungskomponenten in einer isolierten Umgebung starten

• Prozessgrenzen, Nachrichtenverträge und Fehlerszenarien testen

Modul 20: Verteilte End-to-End-Anwendung

• Eine Qt-Benutzeroberfläche mit nebenläufiger Backend-Verarbeitung verbinden

• Protocol-Buffers-Nachrichten über ZeroMQ austauschen

• Automatisierte Tests, Protokollierung und kontrollierte Fehlerbehandlung anwenden

• Die vollständige Anwendung in einer containerisierten Linux-Umgebung erstellen, ausführen und diagnostizieren

Praxisnahes Lernen mit erfahrenen Trainern an Ihrem Standort für Organisationen.

6.897€*
Graph Icon - Education X Webflow Template
Niveau:
intermediate
Clock Icon - Education X Webflow Template
Dauer:
35
Stunden (Tage:
5
)
Camera Icon - Education X Webflow Template
Training angepasst an Ihre Bedürfnisse
Star Icon - Education X Webflow Template
Intensive praktische Erfahrung in einer speziellen Umgebung
*Der Preis kann je nach Teilnehmerzahl, Änderung des Programms, Standort usw. variieren.

Neue Fähigkeiten erlernen, angeleitet von erfahrenen Trainern von überall.

4.962€*
Graph Icon - Education X Webflow Template
Niveau:
intermediate
Clock Icon - Education X Webflow Template
Dauer:
35
Stunden (Tage:
5
)
Camera Icon - Education X Webflow Template
Training angepasst an Ihre Bedürfnisse
Star Icon - Education X Webflow Template
Reduzierte Schulungskosten
*Der Preis kann je nach Teilnehmerzahl, Änderung des Programms, Standort usw. variieren.

Starttermine

09.-13.11.2026
Hamburg
14.-18.12.2026
Köln
15.-19.02.2027
Stuttgart
22.-26.02.2027
Hamburg
01.-05.03.2027
Berlin

Kein passender Termin dabei? Sprechen Sie uns gerne auf Ihren Wunschtermin an.

Wir verwenden Cookies, um die Navigation zu verbessern, die Nutzung der Website auszuwerten und unser Marketing zu unterstützen. Sie können alle Cookies akzeptieren, nicht notwendige ablehnen oder einzelne Kategorien auswählen. Zum Cookie-Hinweis