Über diese Schulung
Die Programmiersprache Rust ist zum wiederholten Mal zur beliebtesten Entwicklungstechnologie in der Stackoverflow Survey gewählt worden. Die Stimmen mehren sich, die in Rust eine DER Programmiersprachen der nächsten Jahrzehnte sehen. Sie kombiniert Effizienz durch Systemnähe mit einer Stabilität, die man ansonsten nur von Managed Languages wie C# oder Java kennt.
Ziel dieses Training ist, den Teilnehmerinnen und Teilnehmern das notwendige Basiswissen zu vermitteln, damit sie entscheiden können, ob ein tieferer Einstieg in Rust für die eigenen Projekte sinnvoll ist. Wer sich dafür entscheidet, dem werden die nächsten Schritte leichter fallen, da in diesem Basistraining bereits ein Verständnis für die wichtigsten Prinzipien der Sprache Rust erworben wurde.
In diesem Seminar gehen wir davon aus, dass Sie solides Grundwissen über Softwareentwicklung im Allgemeinen und praktische Erfahrung in zumindest einer Sprache wie C#, Java, Kotlin, C++, Go oder JavaScript haben. Das Seminar kombiniert Theorie über Rust-Konzepte mit praktischen Beispielen. Insofern sollten Sie Rust, Visual Studio Code und die dazugehörige Rust-Erweiterung installiert haben.
The training can be delivered in English or German. Code samples and slides will always be English.
Individuell anpassbarer Programmvorschlag/Lehrplan für das Schulungsmodul Rust
Dies ist nur ein Vorschlag für eine Agenda. Wie bei allen unseren Maßnahmen können Sie Themen streichen, ergänzen und priorisieren. Zudem können Sie diese Inhalte mit anderen Themenmodulen kombinieren. Egal ob Sie eine Schulung und/oder Beratung wünschen: Die Maßnahme wird auf Ihre Wünsche und Bedürfnisse genau maßgeschneidert!
Einstieg in Rust
- Warum Rust? Vorteile: Sicherheit (Memory Safety), Effizienz, keine Laufzeitumgebung nötig
- Erstellen von Rust-Programmen mit Cargo
- Abhängigkeitsmanagement mit Cargo
- Ausführen und Debuggen von Rust-Programmen in Visual Studio Code
- Überblick über Rust-Tools (z. B. rustfmt, clippy, rustdoc)
Grundlagen der Rust-Programmiersprache
- Skalare Typen, Variablen und Mutabilität
- Slices
- Funktionen
- Kontrollfluss
- Strukturen (Structs)
- Enums und Pattern Matching
- Grundlagen der String-Verarbeitung
- Einführung in Traits
Ownership in Rust
- Einführung
- Ownership (Besitz)
- Referenzen und Borrowing (Ausleihen)
- Explizite Lebensdauern (Lifetimes)
Fehlerbehandlung
Collections (Sammlungen)
- Vektoren und verkettete Listen
- Maps (Abbildungen)
- Sets (Mengen)
Fortgeschrittene Themen
- Closures (Abschlussfunktionen)
- Iteratoren
- Boxing
- Generics (Generische Typen)
- Verwenden von Makros (Die Entwicklung von Makros ist nicht Teil dieser Schulung)
- Multithreading und nebenläufige Programmierung
- Code-Organisation
- Idiomatisches Rust
Automatisierte Tests
- Schreiben von Tests
- Ausführen und Debuggen von Tests mit Cargo und Visual Studio Code
Erstellen und Veröffentlichen von Crates
- Erstellen wiederverwendbarer Pakete
- Code-Dokumentation
- Veröffentlichen von Crates auf crates.io
Optional: Integration von Rust in C++-Anwendungen
- Foreign Function Interface (FFI)
- ABI-Kompatibilität
- Calling Conventions
- Name Mangling
- Speichermanagement
- Datenstruktur-Kompatibilität
- Übergabe von Zeichenketten
- Übergabe von C++-Spezifischen Konstrukten
- Übergabe von Zeigern
- Fehlerbehandlung
Optional: Rust in Embedded Software
- Tooling für Embedded Rust
- Low-Level Programmierung
- Interrupt Handling
- Peripherie ansteuern mit Rust
- Power Management und Energiespare
- Effizientes Speicher-Management
- Memory-Mapped I/O
- Testing und Debugging im Embedded-Bereich
- Fehlerbehandlung und Resilienz
- Bare-Metal Programmierung mit Rust
- Bootloader und Firmware-Updates
- Nutzung von Rust's Zero-Cost-Abstraktionen für effizienten Code
- Concurrency in Embedded Systems
- Inline-Assembler und Interoperabilität mit C
- Integration von Inline-Assembler
- Verknüpfung von C-Code mit Rust über FFI (Foreign Function Interface)