Lukáš Hozda
IT metodolog
Braiins Systems
Během kurzu Rust Developer získáš hands-on zkušenosti s vývojem vlastní chatovací aplikace.
Ovládni softwarový vývoj s Rustem a rozvíjej své programovací dovednosti pod vedením Lukáše Hozdy. Kurz je právě pro tebe, pokud už máš zkušenosti s programováním a hledáš možnost rozšířit své obzory online. Rust je technicky sofistikovaný jazyk, se kterým najdeš mnoho pracovních příležitostí, ale začít může být náročné. Jsme zde, abychom ti pomohli zvládnout začátky a naučili tě potřebné dovednosti pro práci.
Nejlepší absolventi kurzu dostanou příležitost pracovat ve společnosti Braiins jako Rust developeři.
Připravujeme
Lektor
Senior Software Engineer
—> Přehled Rustu a jeho klíčových funkcí
—> Filozofie Rustu – proč zvolit Rust
—> Konfigurace vývojového prostředí
Praktické cvičení: Instalace a konfigurace Rustu a jeho nástrojů, zprovoznění Rustu v preferovaném IDE/editoru kódu.
—> Základní syntaxe a struktura kódu v jazyce Rust
—> Datové typy a deklarace proměnných
—> Standardní dokumentace knihovny
—> Základy systému sestavování a správce balíčků Cargo
—> Variable bindings a úvod do konceptů „ownershipu“, „borrowing“ a „lifetimes“
Praktické cvičení: Napiš program, který čte ze standardního vstupu, upravuje text podle zadání a vypisuje jej zpět uživateli.
—> Podmínky (if, else if a match)
—> Smyčky (loop, while, for a iterátory)
—> Funkce a předávání parametrů
—> Ownership vs. funkce
—> Moduly, modifikátory přístupu a organizace kódu v rámci projektu
—> Definování a používání struktur a n-tic (tuples)
—> Enumerations (výčty) a pattern matching
—> Přidružené funkce a metody
—> Pokročilé řídící struktury: if-let, while-let, let-else
—> Pochopení přístupu Rustu k ošetřování chyb
—> Ošetřování chyb pomocí typu Result
—> Použití operátoru ? a typu Option
—> Propagování chyb nahoru po call stacku
—> Chyby vs. paniky
Praktické cvičení: Přepiš aplikaci tak, aby chyby správně probublávaly nahoru call stackem, nahraď unwraps() a expects() operátorem try a správně reprezentuj chybovost v programu pomocí typů Option a Result.
—> Pole, slices
—> Práce s vektory (dynamická pole)
—> Manipulace s řetězci a jejich ownership, přehled mnoha typů řetězců v Rustu
—> Použití hash map pro key-value storage
—> Úvod do multithreadingu souběžnosti v jazyce Rust
—> Vytváření a správa vláken
—> Synchronizace a komunikace mezi vlákny
—> Send a Sync traity
Praktické cvičení: Spouštění threads pro čtení vstupů a přijímání zpráv a jejich zobrazování.
—> Čtení ze souborů a stdio a zápis do nich
—> Zpracování chyb a výjimek souvisejících se soubory
—> Práce s cestami k souborům a adresářům
—> Sockety, TCP, UDP v Rustu
—> Serializace a deserializace dat
—> Úvod do frameworku
Praktické cvičení: Rozděl aplikaci na samostatnou klientskou a serverovou část. Klienti posílají zprávy serveru po síti, zatímco server je přijímá a rozesílá připojeným klientům.
—> Porozumění generikům v jazyce Rust
—> Definice generických funkcí a struktur, klauzule where
—> Implementace traits pro opakovaně použitelný kód
—> Supertraity a generic bounds (higher ranked trait bounds)
—> Běžné traity v Rustu
—> Zkoumání ekosystému Rust a dostupných knihoven
—> Správa závislostí pomocí Cargo
—> Komunitní zdroje
—> Nástroje pro lintování a správu kódu Rustu (clippy, rustfmt)
Praktické cvičení: Přeměn obě části aplikace pro chatování na plnohodnotné Cargo crates. Použij knihovny vhodné do produkce, které se postarají o takové aspekty, jako je protokolování. Prozkoumej další užitečné crates pro zjednodušení nebo vylepšení aplikace, jako jsou itertools, rayon, crates pro logování (tracing).
—> Porozumění lifetimes a jejich úloze v systému Rust
—> Anotace lifetime a scope – stanovení rozsahu
—> Borrowing a reference v jazyce Rust
—> Chytré ukazatele
—> Vytváření vlastních chybových typů v jazyce Rust
—> Implementace traitu Error
—> Osvědčené postupy pro zpracování chyb
—> Knihovny pro práci s chybami – anyhow, thiserror
Praktické cvičení: Zaveď do aplikace správného zpracování chyb a hlášení chyb. Server by měl přesně a silně typovaným způsobem hlásit klientovi, proč přesně něco nefunguje (chyby jako neplatné pověření, neplatný příjemce apod.).
—> Úvod do asynchronního programování v jazyce Rust
—> Futures a syntaxe async/await, streamy
—> Práce s asynchronními knihovnami – futures, async_trait
—> Základní součásti Tokio: tasks, reactors. executors
—> Knihovna IO
—> Tokio select! makro
—> Asynchronní databázové knihovny
Praktické cvičení: Přepiš chatovacího klienta i chatovací server do asynchronního paradigmatu s použitím frameworku Tokio. Začni ukládat data o chatu a uživatelích do databáze.
—> Typy databází
—> Psaní testů v jazyce Rust
—> Použití built-in testing frameworku
—> Dokumentace kódu pomocí Rustdoc
—> Doc-tests
—> Existující řešení pro code-coverage
Praktické cvičení: Přidej testy (podle specifikace) pro kód sdílené knihovny a použij komentáře k dokumentaci knihovny.
—> Přehled ekosystému pro vývoj webových aplikací Rust
—> Práce s webovými frameworky (např. Rocket, Actix, Axum, Warp)
—> Rust pro vývoj back-endu
Praktické cvičení: Implementuj webový front-end pro správu serverové komponenty chatovací aplikace z prohlížeče.
—> Použití metrik Prometheus v Rustu
—> Instrumentace a měření dat
—> Zobrazování metrik pomocí nástroje Grafana
Praktické cvičení: Implementuj metriky do serverové části aplikace, nastav Grafanu a ověř funkčnost metrik vykreslením grafů v Grafaně.
—> Makra a metaprogramování v Rustu
—> Propojení Rustu s jazykem C a dalšími jazyky
—> Využití Rustu pro vývoj front-endů
—> Práce s Nightly Rustem
—> Debugging
Praktické cvičení: Studenti dostanou závěrečnou specifickou zpětnou vazbu pro každého studenta o tom, jak zlepšit svůj projekt, aby mohl postoupit do finální podoby v rámci kurzu.
—> Obecná zpětná vazba a revize projektů
—> Co dělá Braiins a jakou roli zde hraje Rust
Vyplň registrační formulář a připoj se k nám!
Náš r_d tým se s tebou spojí co nejdříve, abys získal*a všechny potřebné detaily o obsahu
Rust Developer a jeho ceně.