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 roboczegoapp/— pakiet binarnycore/— pakiet bibliotecznyutils/— 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 --libZależ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 testWybó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 coreZależ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
-psł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
- Podstawy Cargo
- Cargo.toml
- Obszary robocze
- Funkcje i profile