Rust (RUST1)

Programování, Ostatní

Kurz seznámí účastníky se základy programovacího jazyka Rust. Je určen vývojářům, kteří již mají zažité běžné programovací koncepty a umí je používat. Soustředí se přitom na postupný výklad syntaxe jazyka a jeho idiomatické používání.
Školení je určeno především pro skupinové firemní kurzy, kde bude osnova dále na míru přizpůsobena vstupním znalostem a potřebám účastníků školení.

Lokalita, termín kurzu

Kontaktujte nás

Virtuálně se můžete přidat i ke školením ve výše nabízených lokalitách. Do poznámky v objednávce prosím uveďte „Připojím se virtuálně“

Náplň kurzu:

Skrýt detaily
  • Úvod
    1. Historie a vývoj jazyka
    2. Filosofie a cíle
    3. Rust jako (nejen) systémový jazyk
  • Příprava na vývoj
    1. Seznámení se základními nástroji
    2. Nastavení vývojového prostředí
    3. Další užitečné nástroje
    4. Ekosystém, komunita a zdroje užitečných informací
  • Základní (a obvyklé) koncepty a konstrukty
    1. Základní datové typy, literály
    2. Proměnné a konstanty, binding
    3. Příkazy a výrazy
    4. Konstrukce pro řízení programu (`if`, `for`, `while`, `loop`)
    5. Funkce
    6. Používání a možnosti maker
  • Koncept vlastnictví (ownership)
    1. Vlastnictví a jeho předávání
    2. Reference
    3. Borrowing a jeho důsledky
    4. Rozsah platnosti proměnných (lifetime), destruktor
    5. Copy a Clone typy
  • Složitější datové typy
    1. Jemný úvod do generik
    2. Tuples, tuple structs
    3. Struct
    4. Enum
    5. Array
    6. Slices
  • Řešení absence hodnoty: typ `Option`
    1. Type aliasing: `type`
    2. Implementace funkcí svázaných s typy
    3. Základní kolekce a základní operace s nimi
    4. String a příbuzné typy a základní operace s nimi
  • Pattern matching
    1. Dekonstrukce
    2. Operátor `match`
    3. Zjednodušený matching pomocí `if let`
  • Zpracování chybových stavů
    1. Nezotavitelné chyby, `panic`
    2. Zotavitelné chyby, typ `Result`
  • Organizace kódu
    1. Struktura projektu
    2. Packages, crates
    3. Moduly
    4. Viditelnost
  • Doporučené praktiky
    1. Sématické verzování
    2. Dokumentace
    3. Psaní testů
  • Pokročilé typové konstrukce
    1. Traits
    2. Lifetime v generikách
    3. Generika s omezujícími podmínkami, `impl` typy
    4. Přehled význačných traits, makro `derive`
  • Funkcionální programování
    1. Closures
    2. Iterátory
  • Organizace a správa dat
    1. Fyzická reprezentace datových typů
    2. Halda (heap) a zásobník (stack)
    3. Dynamická alokace: `Box`, `Rc`, `Arc`
    4. Používání `Cow`, `AsRef`
    5. Interior mutability, typy `Cell` a `RefCell`
  • Pattern matching: doplnění syntaxe
  • Pokročilé typové konstrukce pro pokročilé
    1. Object safety, dynamic dispatch vs. monomorphization
    2. Objektově-orientované programování s pomocí traits
    3. Supertraits
    4. Associated types, default type parameters
    5. Method disambiguation, turbofish
    6. Newtype pattern a implementace externích traits
    7. Higher-ranked lifetimes
    8. Exotické typy: Empty Types, ZSTs (Zero-Sized Types), DSTs (Dynamically Sized Types)
    9. Speciální typy: `!`, `()`, `fn`, `Fn`
  • Techniky pro odvážné
    1. Ukazatele (pointers)
    2. `UnsafeCell`
    3. Jak na `unsafe`
  • Základy práce se soubory
    1. Typy specifické pro operační systém (např. `OsString` nebo `Path`)
    2. Souborové operace, abstrakce `Reader` a `Writer` a jejich rozšíření
    3. Automatický resource management v praxi
  • Zachycení chybových stavů pomocí `Error`
  • Úvod do paralelního programování
    1. Význam `Sync` a `Send`
    2. Používání vláken
    3. Komunikace mezi vlákny
    4. Používání `Mutex` a `Arc`
  • Deklarativní makra
    1. Úvod do asynchronního programování
    2. `Future` a konstrukty `async`/`await`
    3. Princip fungování asynchronního runtime
Časový rozvrh:
5 dní (9:00hod. - 17:00hod.)