Rust-Programmierung für C/C++ Entwickler: Praktische Konzepte und fortschrittliche Techniken
Online-Workshop, 25.10.2023, 9 bis 17 Uhr
Wir beginnen mit einer Einführung in Strukturen insbesondere in Verbindung mit dem Konzept von Lifetimes. Dabei wird insbesondere darauf eingegangen, wie man Referenzen zwischen Strukturen handhabt und wie man mit dem richtigen Management von Ressourcen und deren Lebensdauer Data Races vermeidet und die Speichersicherheit gewährleistet. Im Anschluss daran werden wir uns mit Traits beschäftigen, sowohl eigenen als auch wichtigen Standard-Traits. Dabei wird der Unterschied zwischen Monomorphisation und Dynamic Dispatching anhand von "impl" und "dyn" erklärt sowie die Vor- und Nachteile beider Ansätze werden aufgezeigt.
Das nächste Thema sind Enums, ein zentrales Konstrukt in Rust, das die Definition und Verwendung von Variantentypen ermöglicht. Anschließend werden wir uns mit Tuple und Tuple Structs auseinandersetzen, die eine kompakte Möglichkeit bieten, mehrere Datenwerte zu einer Einheit zusammenzufassen. Wir zeigen, wie man sie effizient in Rust verwendet und diskutieren ihre Anwendung in verschiedenen Kontexten.
Schließlich werden wir die Unterschiede zwischen Heap- und Stack-Speicher und ihre Auswirkungen auf die Speicherperformance erörtern. Dabei wird der Einsatz von "Box" zur Heap-Allokation diskutiert. Zum Abschluss werden wir uns mit Ref Counting befassen, einer Methode zur automatischen Speicherverwaltung in Rust, und erläutern, wie man sie effektiv einsetzt, um sicherzustellen, dass Ressourcen korrekt freigegeben werden, wenn sie nicht mehr benötigt werden.
Vorkenntnisse
Dieser Rust-Workshop ist speziell für Entwickler:innen, die bereits Erfahrung in C und/oder C++ haben und in Rust Ein- oder auf Rust umsteigen wollen. Teilnehmer:innen des Workshops sollten bereits mit den Basics von Rust (insbesondere Verwendung von Cargo, crates.io, Variablen und Basisdatentypen, Methoden, Schleifen, Statements und Expressions) vertraut sein.
Lernziele
Insgesamt bietet dieser Workshop eine solide Grundlage für die effiziente Nutzung der Rust-Programmiersprache in der Praxis und ermöglicht es den Teilnehmer:innen, ihre Kenntnisse in dieser mächtigen Sprache zu vertiefen und zu erweitern.