Rust: Unterschied zwischen den Versionen

Aus Dokument
Zur Navigation springen Zur Suche springen
 
(17 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).
''Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).''
----


Rust ist eine von Mozilla Research entwickelte Programmiersprache, die sich auf Sicherheit, Geschwindigkeit und Parallelität konzentriert. Sie ist syntaktisch ähnlich zu C++, bietet jedoch zusätzliche Funktionen, die die Sicherheit und Nebenläufigkeit verbessern.
==Weblink==
* Boris Paskhaver Learn to Code with Rust


==Lernplan für Rust nach einzelnen Schritten==
== Phase 1: [[Rust/Grundlagen|Grundlagen]] (Wochen 1-2) ==
Ziel: Verstehen der Basiskonzepte von Rust und der Toolchain.


===Schritt 1: Einführung und Grundlagen (Rust Programmiersprache)===
* '''[[Rust/Installation und Setup|Installation und Setup]]'''
# [[Überblick über die Programmiersprache Rust]]
** [[Rust/Installation von `rustup`, `rustc` und `cargo`|`rustup`, `rustc` und `cargo`]].
# [[Installation und Einrichtung der Entwicklungsumgebung (Rust Programmiersprache)]]
** [[Rust/"Hello World!" Programm|"Hello World!" Programm]].
# [[Erste Schritte mit Rust: "Hello, World!" Programm]]
** [[Rust/IDE-Setup|IDE-Setup]] (z. B. VS Code mit rust-analyzer).
# [[Operatoren (Rust Programmiersprache)]]
* '''Grundlegende Syntax'''
# [[Variablen und Mutabilität (Rust Programmiersprache)]]
** Variablen und Mutabilität (`let`, `let mut`).
# [[Datentypen (Rust Programmiersprache)]]
** Datentypen (Skalare und Verbundtypen).
# Funktionen
** Funktionen und Kommentare.
# Kontrollstrukturen (if, else, loop, while, for)
* '''Kontrollstrukturen'''
# Konsole Eingabe und Ausgabe in Rust
** `if`, `else if`, `else`.
# [[Rust Programmiersprache Software Tools Werkzeuge]]
** Schleifen (`loop`, `while`, `for`).
* '''Ressourcen:''' [https://doc.rust-lang.org/book/ch01-00-getting-started.html Das offizielle Rust Book (Kapitel 1-3)]


===Schritt 2: Eigentum und Speicherverwaltung===
== Phase 2: Ownership und Borrowing (Wochen 3-4) ==
# Das Ownership-System
Ziel: Meistern des wichtigsten und einzigartigsten Konzepts von Rust.
# Referenzen und Borrowing
# Lebensdauern (Lifetimes)


===Schritt 3: Compound Typen===
* '''Ownership'''
# Tupel
** Stack vs. Heap.
# Arrays
** Ownership-Regeln.
# Slices
** Die `String` Typen und Speichermanagement.
# Strukturen (Structs)
* '''Referenzen und Borrowing (Ausleihen)'''
# Aufzählungen (Enums)
** Mutable und Immutable References.
** Data Races verhindern.
* '''Slices'''
** String Slices (`&str`).
** Array Slices.
* '''Ressourcen:''' [https://doc.rust-lang.org/book/ch04-00-understanding-ownership.html The Rust Book (Kapitel 4)], Rustlings Übungen.


===Schritt 4: Sammlungen (Collections)===
== Phase 3: Fortgeschrittene Datenstrukturen (Wochen 5-6) ==
# Vektoren (Vec)
Ziel: Komplexe Datenmodelle erstellen.
# HashMaps
# Strings


===Schritt 5: Fehlerbehandlung===
* '''Structs (Strukturen)'''
# Result und Option Typen
** Definieren und Instanziieren.
# Fehlerbehandlung mit match und unwrap
** 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).


===Schritt 6: Generics und Traits===
== Phase 4: Fehlerbehandlung, Generics und Traits (Wochen 7-8) ==
# Einführung in Generics
Ziel: Robusten und wiederverwendbaren Code schreiben.
# Verwendung von Traits
# Eigene Traits definieren


===Schritt 7: Fortgeschrittene Themen===
* '''Fehlerbehandlung'''
# Closures und Iteratoren
** Unrecoverable Errors (`panic!`).
# Concurrency mit Threads und Channels
** Recoverable Errors (`Result`).
# Asynchrone Programmierung mit async/await
** 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).


===Schritt 8: Projektarbeit===
== Phase 5: Praktische Anwendung und fortgeschrittene Themen (Wochen 9-12) ==
# Ein kleines Projekt von Anfang bis Ende
Ziel: Eigene Projekte bauen und das Ökosystem verstehen.
# Best Practices und Code-Organisation
# Testen und Debuggen


==Siehe auch hier==
* '''Schreiben von automatisierten Tests'''
* [[Anwendungsbereiche für Rust-Programmierprojekte]]
** Unit-Tests und Integrations-Tests.
* [[Rust-Programmiersprache Projekte]]
* '''Iteratoren und Closures'''
==Video==
** 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>`).


<youtube>VBdgdhhb3OE?si=Z0LK4KuGlv_CkkYj</youtube>
== 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`.


Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).
== Kontinuierliches Lernen ==
* [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.
* 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).''

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).


  • Boris Paskhaver Learn to Code with Rust

Phase 1: Grundlagen (Wochen 1-2)

Ziel: Verstehen der Basiskonzepte von Rust und der Toolchain.

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


Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).