Szkolenie: Zaawansowane programowanie w języku Rust
Podczas szkolenia uczestnicy nauczą się zaawansowanego programowania w języku Rust. Jest to język ogólnego przeznaczenia, określany mianem nowoczesnego i niezwykle wydajnego języka programowania.
- Trenerzy praktycy
- Kameralne grupy
Czas trwania szkolenia:2 dni (16h)
Kod kursu:RUST/PROGADV
Zaawansowane programowanie w języku Rust
Cele szkolenia
Poznanie zawansowanych wzorców dotyczących typów generycznych, traits oraz smart pointers
Zrozumienie działania i nabycie umiejętności pisania makr
Solidne wprowadzenie do programowania wielowątkowego i asynchronicznego w języku Rust
Poszerzenie i uporządkowanie wiedzy na temat unikalnego modelu zarządzania pamięcią
Omówienie zagadnień związanych z integracją (FFI) oraz wykorzystaniem unsafe Rust
Dla kogo?
Programistów, znających podstawy języka Rust, chcących poszerzyć swoją wiedzę o zagadnienia zaawansowane
Zalety
Szkolenie ma charakter warsztatowy - duża ilość przykładów i ćwiczeń ułatwiających przyswojenie zdobywanej wiedzy
Praktyka przed teorią - wszystkie szkolenia technologiczne prowadzone są w formie warsztatowej. Konieczna teoria jest wyjaśniana na przykładzie praktycznych zadań
Konkretne umiejętności - w ramach każdego szkolenia rozwijamy praktyczne umiejętności związane z daną technologią i tematyką
Nauka z praktykami - wszyscy trenerzy na co dzień pracują w projektach, gwarantuje to dostęp do eksperckiej wiedzy i praktycznego know-how
Wymagania
Podstawowa umiejętność programowania w języku Rust, znajomość koncepcji Ownership i modelu zarządzania pamięcią
W cenie otrzymasz:
Materiały szkoleniowe
Certyfikat ukończenia szkolenia
W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Program szkolenia
Traits, generics, smart pointers - idiomy, wzorce, zastosowania
Const generics i parametryzowanie na poziomie kompilacji
Marker structs i typy fantomowe
Super traits, extension traits oraz blanket implementations
Marker traits i wrapper structs
Struct tagging
Smart pointers i kontrola własności: Box, Rc, Arc, Mutex, RwLock, Cell, RefCell, OnceCell
Metaprogramowanie z użyciem makr
Czym jest metaprogramowanie?
Zasada działania i zastosowanie makr w języku Rust
Makra deklaratywne vs. proceduralne
Tworzenie i testowanie makr w praktyce
Asynchroniczność i programowanie wielowątkowe
Uruchamianie i koordynowanie pracy wątków
Bezpieczne współdzielenie stanu (Atomics, Mutexes, RwLocks)
Komunikacja między wątkami z wykorzystaniem kanałów (Channels)
Scoped threads
Kod asynchroniczny z wykorzystaniem async/await - zrozumienie idei
Model asynchroniczny w Rust: async, await, Future, Pin
Wprowadzenie do Tokio – uruchamianie zadań, runtime
Komunikacja pomiędzy zadaniami: kanały, synchronizacja
Wzorce współbieżności: aktorzy, pule wątków, throttling i rate limiting
Programowanie bez gwarancji bezpieczeństwa
Czym jest unsafe Rust?
Przykłady unsafe Rust (blocks, functions, traits)
Raw pointers
Integracja z kodem zewnętrznym / Foreign Functions Interface
Deklarowanie funkcji oraz zmiennych zewnętrznych
Tworzenie i użycie kontraktów na poziomie Rust/C
Tworzenie i użycie kontraktów na poziomie Rust/Python
Wybrane opinie
Przeczytaj pozytywne opinie pochodzące z ankiet satysfakcji z naszych szkoleń wypełnianych wyłącznie przez ich uczestników po realizacji usługi