Absolvent bude do hloubky obeznámen s OOP i funkcionálními technikami a jejich využitím v silně typovém jazyce. Kurz začíná základními konstrukcemi jazyka, pokračuje s OOP, poté funkctionálními transformacemi, typovým systémem jazyka a končí [...]
  • SCALA_INTRO
  • Délka 3 dny
  • 0 ITK bodů
  • 5 termínů
  • Praha (12 300 Kč)

    Brno (12 300 Kč)

    Bratislava (540 €)

  • Začátečník

Absolvent bude do hloubky obeznámen s OOP i funkcionálními technikami a jejich využitím v silně typovém jazyce. Kurz začíná základními konstrukcemi jazyka, pokračuje s OOP, poté funkctionálními transformacemi, typovým systémem jazyka a končí asynchronním programováním.

»
  • Kurz předpokládá znalost jakéhokoli jiného programovacího jazyka a základů algoritmizace.
  • Výklad s prezentací
  • Praktické ukázky na malých útržcích kódu, tzv. "tabule" nebo scratches v InteliJ Idea
  • Málá cvičení pro vyzkoušení právě vysvětleného
  • Velké samostatné úkoly z tématického celku vyhodnocené individuálně pro každého studenta (s radami jak dále)
  • Prezentace probírané látky v tištěné nebe online formě.

Instalace potřebných nástrojů/Scaly a úvod

  • Instalace Scala-cli
  • Scala v InteliJ Idea (Scala plugin)
  • Co je Scala, malá ukázka cílů a směrování kurzu is praktickými příklady
  • Vytvoření projektu

Základní konstrukce jazyka a úvod do typů

  • Měnitelné vs neměnitelné proměnné - princip immutable
  • Základní typy: numerické, řetězce, pravdivostní hodnoty
  • Podmínky a cykly
  • For cyklus který vrací výsledek, teorie výrazů - co je výraz a co ne
  • Funkce, rekurze, tail rekurze
  • Interpolace řetězců
  • Typ tuple, "rozbití" na proměnné, pattern matching
  • Typ option jako jednoprvková kolekce, řetězení options ve for cyklu, Option(null)
  • Dopis/Seq/Vector/Set/Map a operace nad nimi
  • Mutable varianty kontejnerů

Operace nad kolekcemi

  • foreach, map, flatMap
  • rekurzivní počítání s kolekcemi, foldLeft, sum, reduce
  • find, headOption, filtr, exists, contains, collect, groupBy, mkString

OOP ve Scale

  • Třída a její atributy, konstruktor, companion object a apply
  • case class, metoda copy, pattern matching
  • Traity a vícenásobná dědičnost
  • Anonymní třídy
  • sealed trait a enumerace

Pokročilejší konstrukce jazyka

  • Vyšší funkce, funkce jako parametr a návratová hodnota
  • Kdy se kód skutečně zavolá/vyhodnotí?
  • Lambdy
  • Obalení primitivních hodnot do typů namísto přímého použití
  • implicitní funkce, konverze
  • implicitní třídy, doplňování metod
  • implicitní hodnoty
  • Try vs try
  • Řetězení potencionálně neúspěšných operací ve for cyklu, recover, orElse
  • Funkce s typovým parametrem
  • Ohraničení typů
  • Náš vlastní reduce

Asynchronní programování

  • Future
  • Await.ready/result
  • Execution Context (global, fixed thread pool, cached, work stealing pool)
  • Future neznamená thread, Co je to thread pool
  • map, flatMap, skládání ve for cyklu
  • andThen, recover, transform
  • lazyness
Aktuální nabídka
Školicí místo
Jazyk kurzu

Uvedené ceny jsou bez DPH.