Przejdź do treści

Rust — programowanie systemowe i bezpieczne

Pięciodniowy warsztat end-to-end łączący ownership i borrow-checker, programowanie współbieżne z async/Tokio, unsafe Rust i FFI oraz tooling produkcyjny w jednej ścieżce — dla zespołów budujących bezpieczne pamięciowo systemy w języku adoptowanym przez Linux kernel, Android, Microsoft i AWS.

Bezpieczeństwo pamięci bez kosztu garbage collectora

Rust eliminuje całą klasę błędów pamięciowych już na etapie kompilacji dzięki modelowi ownership i borrow-checkerowi — bez narzutu wydajnościowego typowego dla języków z garbage collectorem. Szkolenie poświęca pierwszy moduł dogłębnemu zrozumieniu tego modelu, bo to on odróżnia Rust od pozostałych języków systemowych i jest źródłem najczęstszych błędów kompilacji u początkujących.

Jedna ścieżka, cztery filary produkcyjnego Rust

Zamiast rozdzielać materiał na osobne, wąskie kursy, ten warsztat łączy w pięciu dniach cztery obszary potrzebne do pracy produkcyjnej: bezpieczeństwo pamięci, programowanie współbieżne (async/Tokio), świadome użycie unsafe Rust i FFI do integracji z C/C++, oraz tooling (cargo, testy, CI/CD). To układ dedykowany zespołom, które chcą wdrożyć Rust w realnym projekcie, a nie tylko poznać składnię.

Dlaczego liderzy technologiczni wybierają Rust

Linux kernel, Android, Microsoft i AWS adoptują Rust w miejscach, gdzie bezpieczeństwo pamięci i wydajność muszą iść w parze. Ostatni moduł szkolenia łączy te gwarancje z praktyką: optymalizacją wydajności, profilowaniem i solidnym pipeline’em CI/CD, tak by uczestnicy wyszli gotowi do wdrożenia Rust we własnej organizacji.

Korzyści

  • Opanowanie modelu ownership, borrowing i lifetimes jako fundamentu bezpieczeństwa pamięci w Rust
  • Bezpieczne programowanie współbieżne z wykorzystaniem async/await i runtime Tokio
  • Świadome i kontrolowane użycie unsafe Rust oraz FFI do integracji z kodem C/C++
  • Sprawne korzystanie z toolingu produkcyjnego: cargo, testing, zarządzanie zależnościami i wdrażanie

Dla kogo jest to szkolenie?

Programiści systemowi i C/C++ przechodzący na Rust ze względu na bezpieczeństwo pamięci bez garbage collectora
Inżynierowie budujący usługi wysokowydajne i systemy o niskim opóźnieniu
Zespoły embedded i infrastrukturalne integrujące Rust z istniejącym kodem C/C++
Backend developerzy szukający alternatywy dla języków z GC w krytycznych ścieżkach wydajnościowych

Wymagania wstępne

  • Doświadczenie w programowaniu w języku niskiego poziomu (C, C++) lub silne podstawy ogólnego programowania
  • Podstawowa znajomość pojęć związanych z zarządzaniem pamięcią (stos, sterta, wskaźniki) ułatwia naukę

Program szkolenia

01

Ownership, borrowing i lifetimes — fundament bezpieczeństwa pamięci

  • Model ownership i reguły przenoszenia wartości (move semantics)
  • Borrowing: referencje mutowalne i niemutowalne, reguły borrow-checkera
  • Lifetimes — jawne i domniemane, typowe błędy kompilatora i ich przyczyny
  • Smart pointers: Box, Rc, Arc, RefCell — kiedy i po co ich używać
02

Typy, wzorce i obsługa błędów

  • System typów Rust: struktury, enumy, traity
  • Pattern matching i wyrażenie match jako centralny mechanizm kontroli przepływu
  • Obsługa błędów bez wyjątków: Result, Option, operator ?
  • Generyki i ograniczenia traitów (trait bounds)
03

Współbieżność bezpieczna — async/await i Tokio

  • Model współbieżności Rust: Send, Sync i gwarancje bezpieczeństwa wątków
  • Programowanie asynchroniczne: async/await, futures, executor
  • Runtime Tokio: taski, kanały, synchronizacja w kodzie asynchronicznym
  • Budowa prostej usługi sieciowej wykorzystującej Tokio
04

Unsafe Rust i FFI — integracja z kodem C/C++

  • Kiedy i dlaczego sięgać po unsafe Rust — granice odpowiedzialności programisty
  • Praca ze wskaźnikami surowymi (raw pointers) i niebezpiecznymi operacjami
  • Foreign Function Interface (FFI): wywoływanie kodu C z Rust i odwrotnie
  • Bezpieczne opakowywanie kodu unsafe w bezpieczne API (safe abstractions)
05

Tooling produkcyjny i wdrażanie

  • Cargo: zarządzanie zależnościami, workspace'y, profile budowania
  • Testowanie jednostkowe, integracyjne i property-based testing
  • Analiza statyczna (clippy), formatowanie (rustfmt) i CI/CD dla projektów Rust
  • Optymalizacja wydajności i profilowanie aplikacji produkcyjnych

Formy realizacji

Online

  • Wygoda uczestnictwa z dowolnego miejsca
  • Interaktywne sesje na żywo z trenerem
  • Materiały dostępne przez 30 dni
  • Brak kosztów dojazdu

Stacjonarnie

  • Bezpośredni kontakt z trenerem i grupą
  • Intensywne warsztaty praktyczne
  • Networking z innymi uczestnikami
  • Pełne skupienie na nauce

Najczęściej zadawane pytania

Czym różni się to szkolenie od Rust — bezpieczne programowanie systemowe oraz Rust w programowaniu systemowym w naszym katalogu?

Te dwa istniejące szkolenia to węższe, samodzielne kursy skupione odpowiednio na bezpieczeństwie systemowym i podstawach programowania systemowego w Rust. To szkolenie to pięciodniowy warsztat end-to-end, który łączy w jednej ścieżce cztery obszary rozwijane osobno gdzie indziej: model ownership/borrow-checker, programowanie asynchroniczne z Tokio, świadome użycie unsafe Rust i FFI do integracji z C/C++, oraz kompletny tooling produkcyjny (cargo, testy, CI/CD). To pełny kurs od podstaw do gotowości produkcyjnej, nie pogłębienie pojedynczego wątku.

Czy trzeba znać C lub C++ przed tym szkoleniem?

Nie jest to formalny wymóg, ale doświadczenie w języku niskiego poziomu istotnie ułatwia zrozumienie modelu pamięci Rust oraz modułu FFI, w którym Rust komunikuje się z istniejącym kodem C. Osoby bez takiego doświadczenia powinny liczyć się z wolniejszym tempem w pierwszych dwóch dniach warsztatu.

Kiedy w praktyce trzeba sięgnąć po unsafe Rust, skoro język ma być bezpieczny?

Unsafe Rust jest potrzebny tam, gdzie kompilator nie jest w stanie zweryfikować bezpieczeństwa operacji, mimo że programista wie, że jest ona poprawna — np. przy pracy z surowymi wskaźnikami, wywołaniach FFI do C, czy implementacji niskopoziomowych struktur danych. Szkolenie uczy nie tylko składni unsafe, ale przede wszystkim wzorca bezpiecznego opakowywania takiego kodu w bezpieczne API, tak by reszta aplikacji korzystała z gwarancji Rust.

Dlaczego duże firmy technologiczne (Linux kernel, Android, Microsoft, AWS) adoptują Rust?

Rust eliminuje całą klasę błędów pamięciowych (use-after-free, buffer overflow, data race) na etapie kompilacji, bez kosztu wydajnościowego garbage collectora — stąd adopcja w jądrze Linuksa, systemie Android, komponentach Windows (Microsoft) i infrastrukturze AWS, gdzie bezpieczeństwo pamięci i wydajność są krytyczne jednocześnie. Szkolenie pokazuje, jak te same gwarancje wykorzystać we własnych projektach.

Anna Polak
Anna Polak Opiekun szkolenia

Poproś o ofertę

Możliwości dofinansowania

Sprawdź możliwości dofinansowania dla Twojej firmy

Baza Usług Rozwojowych

Instrument dla mikro, małych i średnich firm — sprawdź, czy dotyczy Twojej organizacji

Sprawdź dostępność

Krajowy Fundusz Szkoleniowy

Instrument dla pracodawców — pomagamy sprawdzić, czy da się go zastosować

Dowiedz się więcej

Zaufali nam

Szkolimy zespoły największych polskich firm

ING Bank - klient EITT
mBank - klient EITT
PKO Bank Polski - klient EITT
PZU - klient EITT
Allianz - klient EITT
T-Mobile - klient EITT
KGHM - klient EITT
PGE - klient EITT
IKEA - klient EITT
InPost - klient EITT
Leroy Merlin - klient EITT
ZUS - klient EITT

Zainteresowany tym szkoleniem?

Skontaktuj się z nami - przygotujemy ofertę dopasowaną do potrzeb Twojego zespołu.

2500+ szkoleń w ofercie
ISO 9001 certyfikat jakości
Zapytaj o szkolenie
Zadzwoń do nas +48 22 487 84 90