Programowanie w języku Scala
Czas trwania szkolenia:4 dni (32h)
Kod kursu:SCALA/J
Poziom zaawansowania:
O szkoleniu Programowanie w języku Scala
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?
- 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
- 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
- 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