Zaawansowane programowanie w języku Rust
Czas trwania szkolenia:2 dni (16h)
Kod kursu:RUST/PROGADV
Poziom zaawansowania:
O szkoleniu Zaawansowane programowanie w języku Rust
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
Dla kogo?
- Programistów, znających podstawy języka Rust, chcących poszerzyć swoją wiedzę o zagadnienia zaawansowane
Wymagania
- Podstawowa umiejętność programowania w języku Rust, znajomość koncepcji Ownership i modelu zarządzania pamięcią
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
Cele szkolenia
- Solidne wprowadzenie do programowania wielowątkowego 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
Program
Asynchroniczność i programowanie wielowątkowe
- Uruchamianie i koordynowanie pracy wątków
- Bezpieczne współdzielenie stanu (Atomics, Mutexes, RwLocks, Channels)
- Kod asynchroniczny z wykorzystaniem async/await
- Gwarancja kolejności wykonania
Makra
- Zasada działania i zastosowanie
- Makra deklaratywne
- Makra proceduralne
- Tworzenie makr w praktyce
Programowanie bez gwarancji bezpieczeństwa
- Czym jest unsafe Rust?
- Raw pointers i inne przykłady unsafe Rust
- Unions
- Integracja z kodem zewnętrznym (Foreign Functions Interface)
Budowanie narzędzi CLI w Rust
- Dostęp do argumentów linii poleceń oraz ich walidacja
- Zmienne środowiskowe
- Praca z systemem plików
- Komunikacja po sieci
- Obsługa błędów
- Organizacja projektu
- Tworzenie oraz publikowanie bibliotek