0Pricing
Learn Rust Coding · Lekcja

Obszary robocze

Projekty wielocrate'owe

Obszary robocze to bezpłatna lekcja Learn Rust Coding na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn Rust Coding, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn Rust Coding zawiera 4 lekcji w sumie.

Czym jest workspace?

Workspace to zbiór powiązanych crate'ów, które współdzielą jeden plik Cargo.lock i wspólny katalog target. To standardowy sposób zarządzania projektami składającymi się z wielu crate'ów.

Manifest główny

W katalogu głównym workspace znajduje się plik Cargo.toml z tabelą [workspace], która wymienia crate'y członkowskie. Sam katalog główny zazwyczaj nie zawiera pakietu.

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

Układ workspace

Typowy układ umieszcza każdy pakiet we własnym podkatalogu:

  • Cargo.toml — katalog główny obszaru roboczego
  • app/ — pakiet binarny
  • core/ — pakiet biblioteczny
  • utils/ — kolejny pakiet biblioteczny

Tworzenie elementów

Elementy tworzy się tak jak każdy pakiet, a następnie dodaje do listy members w manifeście katalogu głównego.

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

Zależność od elementu

Jeden pakiet będący elementem zależy od innego za pomocą zależności typu path w swoim pliku Cargo.toml.

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

Wywoływanie kodu z innych pakietów

Elementy publiczne jednego pakietu wykorzystuje się w innym, odwołując się do nazwy pakietu. W tym przykładzie core udostępnia funkcję wywoływaną przez pakiet binarny.

// 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}");
}

Budowanie całego obszaru roboczego

Uruchomienie Cargo w katalogu głównym buduje każdy element. Wspólny katalog target sprawia, że wspólne zależności są kompilowane tylko raz.

cargo build
cargo test

Wybór jednego elementu

Opcji -p (lub --package) można użyć, aby wykonać polecenie dla pojedynczego pakietu będącego elementem.

cargo run -p app
cargo test -p core

Zależności obszaru roboczego

Wspólne wersje należy zdefiniować raz w sekcji [workspace.dependencies], a następnie odwoływać się do nich z elementów, aby zachować zgodność wersji.

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

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

Dlaczego warto używać obszarów roboczych?

Korzyści z używania obszaru roboczego:

  • Jeden wspólny plik blokady zapewniający spójne wersje
  • Szybsze budowanie dzięki jednemu wspólnemu katalogowi target
  • Łatwy podział dużego projektu na wyspecjalizowane pakiety
  • Jedno polecenie buduje i testuje całość

Wykluczanie katalogu

Klucz exclude wyklucza określone katalogi z obszaru roboczego, natomiast default-members określa, które pakiety są uruchamiane, gdy nie podano opcji -p.

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

Szybkie sprawdzenie

Co współdzielą wszystkie pakiety w obszarze roboczym?

Podsumowanie

Dowiedziałeś się o obszarach roboczych:

  • Tabela [workspace] zawiera listę elementów
  • Elementy zależą od siebie za pośrednictwem path
  • Wspólny plik blokady i katalog target przyspieszają budowanie
  • Opcja -p służy do wybrania jednego elementu
  • [workspace.dependencies] centralizuje wersje

Często zadawane pytania

Czy lekcja „Obszary robocze” jest bezpłatna?

Tak — pełny tekst „Obszary robocze” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn Rust Coding, przejdź na CoddyKit PRO. Kurs Learn Rust Coding zawiera 4 lekcji w sumie.

Co nauczysz się w „Obszary robocze”?

Projekty wielocrate'owe Ćwiczysz Learn Rust Coding z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Learn Rust Coding?

Nie wymagamy żadnego doświadczenia. Learn Rust Coding w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Obszary robocze”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Learn Rust Coding?

Tak. Każda lekcja Learn Rust Coding zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Podstawy Cargo
  2. Cargo.toml
  3. Obszary robocze
  4. Funkcje i profile
← Powrót do Learn Rust Coding