Rust: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
imported>Import Version 170 |
|||
| Zeile 2: | Zeile 2: | ||
---- | ---- | ||
== Weblink == | ==Weblink== | ||
* Boris Paskhaver Learn to Code with Rust | * Boris Paskhaver Learn to Code with Rust | ||
== Phase 1: [[Rust/Grundlagen|Grundlagen]] (Wochen 1-2) == | == Phase 1: [[Rust/Grundlagen|Grundlagen]] (Wochen 1-2) == | ||
Ziel: Verstehen der Basiskonzepte von Rust und der Toolchain. | Ziel: Verstehen der Basiskonzepte von Rust und der Toolchain. | ||
* '''[[Rust/ | * '''[[Rust/Installation und Setup|Installation und Setup]]''' | ||
** [[Rust/ | ** [[Rust/Installation von `rustup`, `rustc` und `cargo`|`rustup`, `rustc` und `cargo`]]. | ||
** [ | ** [[Rust/"Hello World!" Programm|"Hello World!" Programm]]. | ||
** [[Rust/IDE-Setup|IDE-Setup]] (z. B. VS Code mit rust-analyzer). | ** [[Rust/IDE-Setup|IDE-Setup]] (z. B. VS Code mit rust-analyzer). | ||
* '''Grundlegende Syntax''' | * '''Grundlegende Syntax''' | ||
| Zeile 24: | Zeile 22: | ||
== Phase 2: Ownership und Borrowing (Wochen 3-4) == | == Phase 2: Ownership und Borrowing (Wochen 3-4) == | ||
Ziel: Meistern des wichtigsten und einzigartigsten Konzepts von Rust. | Ziel: Meistern des wichtigsten und einzigartigsten Konzepts von Rust. | ||
* '''Ownership''' | * '''Ownership''' | ||
** Stack vs. | ** Stack vs. Heap. | ||
** Ownership-Regeln. | ** Ownership-Regeln. | ||
** Die `String` Typen und Speichermanagement. | ** Die `String` Typen und Speichermanagement. | ||
| Zeile 35: | Zeile 32: | ||
** Data Races verhindern. | ** Data Races verhindern. | ||
* '''Slices''' | * '''Slices''' | ||
** String Slices (`& | ** String Slices (`&str`). | ||
** Array Slices. | ** Array Slices. | ||
* '''Ressourcen:''' [https://doc.rust-lang.org/book/ch04-00-understanding-ownership.html The Rust Book (Kapitel 4)], Rustlings Übungen. | * '''Ressourcen:''' [https://doc.rust-lang.org/book/ch04-00-understanding-ownership.html The Rust Book (Kapitel 4)], Rustlings Übungen. | ||
== Phase 3: Fortgeschrittene Datenstrukturen (Wochen 5-6) == | == Phase 3: Fortgeschrittene Datenstrukturen (Wochen 5-6) == | ||
Ziel: Komplexe Datenmodelle erstellen. | Ziel: Komplexe Datenmodelle erstellen. | ||
| Zeile 48: | Zeile 44: | ||
* '''Enums (Aufzählungen) und Pattern Matching''' | * '''Enums (Aufzählungen) und Pattern Matching''' | ||
** Enums definieren. | ** Enums definieren. | ||
** Die `Option<T>` und `Result | ** Die `Option<T>` und `Result<T, E>` Enums. | ||
** Der `match` Kontrollfluss. | ** Der `match` Kontrollfluss. | ||
** `if let` Syntax. | ** `if let` Syntax. | ||
* '''Collections (Auflistungen)''' | * '''Collections (Auflistungen)''' | ||
** Vektoren (`Vec<T>`). | ** Vektoren (`Vec<T>`). | ||
** Strings (`String` vs `& | ** Strings (`String` vs `&str`). | ||
** Hash Maps (`HashMap | ** Hash Maps (`HashMap<K, V>`). | ||
* '''Ressourcen:''' The Rust Book (Kapitel 5, 6, 8). | * '''Ressourcen:''' The Rust Book (Kapitel 5, 6, 8). | ||
== Phase 4: Fehlerbehandlung, Generics und Traits (Wochen 7-8) == | == Phase 4: Fehlerbehandlung, Generics und Traits (Wochen 7-8) == | ||
Ziel: Robusten und wiederverwendbaren Code schreiben. | Ziel: Robusten und wiederverwendbaren Code schreiben. | ||
| Zeile 75: | Zeile 70: | ||
== Phase 5: Praktische Anwendung und fortgeschrittene Themen (Wochen 9-12) == | == Phase 5: Praktische Anwendung und fortgeschrittene Themen (Wochen 9-12) == | ||
Ziel: Eigene Projekte bauen und das Ökosystem verstehen. | Ziel: Eigene Projekte bauen und das Ökosystem verstehen. | ||
| Zeile 93: | Zeile 87: | ||
== Abschlussprojekt == | == Abschlussprojekt == | ||
* '''Ideen:''' | * '''Ideen:''' | ||
** Ein CLI-Tool (z. B. eine eigene `grep`-Version wie `minigrep` aus dem Buch). | ** Ein CLI-Tool (z. B. eine eigene `grep`-Version wie `minigrep` aus dem Buch). | ||
| Zeile 100: | Zeile 93: | ||
== Kontinuierliches Lernen == | == Kontinuierliches Lernen == | ||
* [https://doc.rust-lang.org/rust-by-example/ Rust by Example] | * [https://doc.rust-lang.org/rust-by-example/ Rust by Example] | ||
* Täglich oder wöchentlich an [https://github.com/rust-lang/rustlings Rustlings] arbeiten. | * Täglich oder wöchentlich an [https://github.com/rust-lang/rustlings Rustlings] arbeiten. | ||
Aktuelle Version vom 4. März 2026, 08:11 Uhr
Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).
Weblink
- Boris Paskhaver Learn to Code with Rust
Phase 1: Grundlagen (Wochen 1-2)
Ziel: Verstehen der Basiskonzepte von Rust und der Toolchain.
- Installation und Setup
- `rustup`, `rustc` und `cargo`.
- "Hello World!" Programm.
- IDE-Setup (z. B. VS Code mit rust-analyzer).
- Grundlegende Syntax
- Variablen und Mutabilität (`let`, `let mut`).
- Datentypen (Skalare und Verbundtypen).
- Funktionen und Kommentare.
- Kontrollstrukturen
- `if`, `else if`, `else`.
- Schleifen (`loop`, `while`, `for`).
- Ressourcen: Das offizielle Rust Book (Kapitel 1-3)
Phase 2: Ownership und Borrowing (Wochen 3-4)
Ziel: Meistern des wichtigsten und einzigartigsten Konzepts von Rust.
- Ownership
- Stack vs. Heap.
- Ownership-Regeln.
- Die `String` Typen und Speichermanagement.
- Referenzen und Borrowing (Ausleihen)
- Mutable und Immutable References.
- Data Races verhindern.
- Slices
- String Slices (`&str`).
- Array Slices.
- Ressourcen: The Rust Book (Kapitel 4), Rustlings Übungen.
Phase 3: Fortgeschrittene Datenstrukturen (Wochen 5-6)
Ziel: Komplexe Datenmodelle erstellen.
- Structs (Strukturen)
- Definieren und Instanziieren.
- Methoden und assoziierte Funktionen (`impl` Blöcke).
- Enums (Aufzählungen) und Pattern Matching
- Enums definieren.
- Die `Option<T>` und `Result<T, E>` Enums.
- Der `match` Kontrollfluss.
- `if let` Syntax.
- Collections (Auflistungen)
- Vektoren (`Vec<T>`).
- Strings (`String` vs `&str`).
- Hash Maps (`HashMap<K, V>`).
- Ressourcen: The Rust Book (Kapitel 5, 6, 8).
Phase 4: Fehlerbehandlung, Generics und Traits (Wochen 7-8)
Ziel: Robusten und wiederverwendbaren Code schreiben.
- Fehlerbehandlung
- Unrecoverable Errors (`panic!`).
- Recoverable Errors (`Result`).
- Propagieren von Fehlern (der `?` Operator).
- Generics
- In Funktionen, Structs und Enums.
- Traits (Schnittstellen)
- Traits definieren und implementieren.
- Trait Bounds.
- Lifetimes (Lebensdauern)
- Validierung von Referenzen.
- Ressourcen: The Rust Book (Kapitel 9, 10).
Phase 5: Praktische Anwendung und fortgeschrittene Themen (Wochen 9-12)
Ziel: Eigene Projekte bauen und das Ökosystem verstehen.
- Schreiben von automatisierten Tests
- Unit-Tests und Integrations-Tests.
- Iteratoren und Closures
- Funktionale Sprachfeatures in Rust.
- Cargo und Crates.io
- Eigene Libraries schreiben und Abhängigkeiten verwalten.
- Workspaces.
- Smart Pointers (Optional/Fortgeschritten)
- `Box<T>`, `Rc<T>`, `RefCell<T>`.
- Nebenläufigkeit (Concurrency)
- Threads.
- Message Passing (Channels).
- Shared State (`Mutex<T>`, `Arc<T>`).
Abschlussprojekt
- Ideen:
- Ein CLI-Tool (z. B. eine eigene `grep`-Version wie `minigrep` aus dem Buch).
- Ein einfacher Webserver (z.B. mit dem `axum` oder `actix-web` Framework).
- Ein kleines TUI-Spiel (z.B. Snake) mit `ratatui`.
Kontinuierliches Lernen
- Rust by Example
- Täglich oder wöchentlich an Rustlings arbeiten.
- Rust-Code von Open-Source-Projekten lesen.
Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).