Lær at programmere i Rust · Lektion

Workspaces

Projekter med flere crates

Lektion 3 af 413 trin

Workspaces er en gratis Lær at programmere i Rust-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Lær at programmere i Rust, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Lær at programmere i Rust-kurset indeholder 4 lektioner i alt.

Hvad er et arbejdsområde?

Et arbejdsområde er et sæt relaterede crates, der deler én Cargo.lock-fil og en fælles target-mappe. Det er standardmåden at håndtere projekter med flere crates på.

Rodmanifestet

Arbejdsområdets rod har en Cargo.toml med en [workspace]-tabel, der angiver medlems-crates. Selve roden har normalt ingen pakke.

[workspace]
members = ["app", "core", "utils"]
resolver = "2"

Arbejdsområdets struktur

Et typisk layout placerer hver crate i sin egen undermappe:

  • Cargo.toml — arbejdsområdets rod
  • app/ — en binær crate
  • core/ — en bibliotekscrate
  • utils/ — endnu en bibliotekscrate

Oprettelse af medlemmer

Du opretter medlemmer ligesom enhver anden crate og føjer dem derefter til rodmanifestets liste over members.

cargo new app
cargo new core --lib
cargo new utils --lib

Afhængighed af et medlem

En medlemscrate afhænger af en anden ved hjælp af en path-afhængighed i sin egen Cargo.toml.

[dependencies]
core = { path = "../core" }
utils = { path = "../utils" }

Kald på tværs af crates

Offentlige elementer i én crate bruges fra en anden ved at referere til cratens navn. Her eksponerer core en funktion, som den binære crate kalder.

// in core/src/lib.rs
pub fn greeting(name: &str) -> String {
    format!("Hello, {name}!")
}

// in app/src/main.rs
fn main() {
    let msg = core::greeting("workspace");
    println!("{msg}");
}

Bygning af hele arbejdsområdet

Når du kører Cargo fra roden, bygges alle medlemmer. Den delte target-mappe betyder, at fælles afhængigheder kun kompileres én gang.

cargo build
cargo test

Målretning af ét medlem

Brug -p (eller --package) til at køre en kommando for en enkelt medlemscrate.

cargo run -p app
cargo test -p core

Arbejdsområdets afhængigheder

Definér delte versioner én gang under [workspace.dependencies], og referér derefter til dem fra medlemmerne for at holde versionerne synkroniserede.

# root Cargo.toml
[workspace.dependencies]
serde = "1.0"

# member Cargo.toml
[dependencies]
serde = { workspace = true }

Hvorfor bruge arbejdsområder?

Fordele ved et arbejdsområde:

  • Én fælles lockfil sikrer ensartede versioner
  • Hurtigere bygninger via én fælles target-mappe
  • Let at opdele et stort projekt i fokuserede crates
  • Én kommando bygger og tester alt

Udelukkelse af en mappe

Nøglen exclude holder bestemte mapper uden for arbejdsområdet, mens default-members angiver, hvilke crates der køres, når du ikke angiver -p.

[workspace]
members = ["app", "core"]
exclude = ["experiments"]
default-members = ["app"]

Hurtigt tjek

Hvad deler alle crates i et arbejdsområde?

Opsummering

Du har lært om arbejdsområder:

  • Tabellen [workspace] viser medlemmerne
  • Medlemmer afhænger af hinanden via path
  • En fælles lockfil og target-mappe gør bygninger hurtigere
  • Brug -p til at målrette ét medlem
  • [workspace.dependencies] centraliserer versionerne
Gratis at komme i gang

Lær Rust med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
39
Lektioner
144

Ofte stillede spørgsmål

Er lektionen “Workspaces” gratis?

Ja — alle 3 lektioner i læringssporet Lær at programmere i Rust, inklusive “Workspaces”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Lær at programmere i Rust-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Workspaces”?

Projekter med flere crates Du øver dig i Lær at programmere i Rust med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Lær at programmere i Rust?

Der kræves ingen tidligere erfaring. Lær at programmere i Rust på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Workspaces”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Lær at programmere i Rust-lektion?

Ja. Alle Lær at programmere i Rust-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Grundlæggende Cargo
  2. Cargo.toml
  3. Workspaces
  4. Features og profiler
← Tilbage til Lær at programmere i Rust