Workspaces
Projekter med flere crates
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 rodapp/— en binær cratecore/— en bibliotekscrateutils/— 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 --libAfhæ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 testMå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 coreArbejdsområ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
-ptil at målrette ét medlem [workspace.dependencies]centraliserer versionerne
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.