Programowanie w języku Scala
LICZBA DNI: 4 (32h)
KOD KURSU: SCALA/J
Weź udział w szkoleniu
Termin
Lokalizacja
Cena / os
6
kwietnia
Warszawa,
Kraków,
Łódź,
Wrocław,
Gdańsk,
Poznań,
Zdalne,
Termin
6
kwietnia
Lokalizacja
Warszawa,
Kraków,
Łódź,
Wrocław,
Gdańsk,
Poznań,
Zdalne,
Cena / os
Powiadom
o kolejnych terminach
O szkoleniu
DLA KOGO?
Programiści Javy zainteresowani budową aplikacji z wykorzystaniem języka i ekosystemu Scala lub tematyką programowania funkcyjnego
WYMAGANIA
Znajomość programowania obiektowego
Doświadczenie w programowaniu w języku Java
ZALETY
Forma warsztatowa, wiele zadań z przygotowanymi testami które pozwalają na szybką weryfikację poprawności rozwiązania
Cele szkolenia
Poznanie możliwości języka, dobrych praktyk programowania oraz polecanych narzędzi
Program
Konfiguracja środowiska i pierwszy program
- Interpreter (REPL)
- IDE
- Pierwszy program
- Wyrażenia (statement vs expression)
- Simple Build Tool (SBT) oraz organizacja kodu źródłowego
Podstawy programowania obiektowego w Scali
- Klasy i cechy (traits)
- Obiekty
- Dziedziczenie
- Pola mutowalne i niemutowalne
- Kontrola widoczności
- Case class i obiekty towarzyszące
- Operatory
- Hierarchia typów
- Nadpisywanie funkcji (override)
Kolekcje i programowanie funkcyjne
- Kolekcje w bibliotece standardowej
- Funkcje wyższego rzędu
- Rozwijanie funkcji (currying)
- Parametry przekazywane przez nazwę
- Kolekcje mutowalne i niemutowalne
- Popularne operacje na kolekcjach (tail, head, zip itp)
Testowanie aplikacji
- Specs2, ScalaTest, ScalaCheck
- Mockowanie
- ScalaTest DSL
- ScalaTest matchers
Instrukcja for - for loop/for comprehension
Dopasowanie wzorców - Pattern matching
- Proste zastosowania Some/None
- Dopasowanie do case class (pl. klasy przypadku)
- Wyrażenia regularne
- Dopasowanie warunkowe - pattern guards
- Dopasowanie po typie i sealed classes
- Definiowanie własnych ekstraktorów
Klasy, metody i parametry domniemane (Implicits)
Simple Build Tool (SBT) - tematy zaawansowane
Obsługa wyjątków
- W stylu obiektowym (try/catch)
- W stylu funkcyjnym (Try/Success/Failure)
Współbieżność i leniwe przetwarzanie
- Wywołania asynchroniczne (futures and promises)
- Kontekst uruchomienia (execution context)
- Leniwość (lazy val)
- Strumienie
Klasy generyczne
- Wariancje
- Ograniczanie parametrów typów generycznych
Integracja z kodem Javy
Przykładowa aplikacja
- Przegląd najpopularniejszych frameworków
- Implementacja interfejsu REST
- Połączenie z bazą danych
- Języki dziedzinowe - DSL
