Kod: JVA-031
Czas trwania: 30 godzin
Czas trwania: 30 godzin
Opis szkolenia
Język programowania Scala zyskuje na popularności w ostatnich latach nie tylko w społeczności programistów, ale także w rozwoju przedsiębiorstw. Jego zalety obejmują wykorzystanie najbardziej zaawansowanych funkcji współczesnych języków programowania i szerokie wsparcie programowania funkcjonalnego.Scala oferuje programistom możliwość poprawy wydajności rozwoju i stworzenia bardzo ekspresyjnego i wydajnego kodu. Kod Scala jest kompilowany do kodu bajtowego Java i działa wewnątrz JVM, co zapewnia doskonałą kompatybilność z istniejącymi bibliotekami i narzędziami Java.
Kurs obejmuje całą zawartość niezbędną do efektywnego wykorzystania Scala: operators i typy danych, przy użyciu podstawowych struktur danych, takich jak arrays, map, tuples, zastosowanie podejścia obiektowego i funkcjonalnego, praca z collections, pattern matching, case-classes, generic i implicit conversions. Obejmuje również dużą liczbę ćwiczeń praktycznych.
Plan szkolenia
a:2:{s:4:"TEXT";s:4496:"Wprowadzenie do ScaliInstrukcje, operatory i typy Scala
- Conditional statements
- Loops
- Funkcje
- Zmienne
- Operatory
- Unit type
- Function type
- Null, Nothing, Any, AnyRef and AnyVal types
- Packages i imports
- Implicit imports
- Wyjątki
Arrays, maps, tuples
- Tworzenie, dodawanie i usuwanie elementów array
- Dostęp to Array Elements
- Arrays o stałej i zmiennej długości
- Multidimensional Arrays
- Operacje z arrays
- Uporządkowanie array
- Tworzenie i dostęp associative tables
- Iteracja, zmiana i uporządkowanie associative tables
- Tuples
- Zipping
Classes i Inheritance
- Klasy
- Właściwości z getters i setters
- Stosowanie parentheses method calls
- Właściwości tylko z getters
- Auxiliary constructors
- Primary constructor
- Nested classes
- Extending the class
- Overriding methods
- Type check i cast
- Call the superclass constructor
- Overriding fields
- Anonymous subclasses
- Abstract fields
- Constructor order i early definitions
- Scala Inheritance Hierarchy
- Objects equality
Objects
- Singletons
- Companion Objects
- Objects extending a class or trait
- Wyliczenia
- Packages objects
- Metody apply i unapply
- Lazy objects
Traits
- Traits jako interfejsy
- Traits o określonej implementacji
- Przedefiniowanie abstract methods in Traits
- Concrete oraz abstract fields in Traits
- Objects, które wykorzystują multiple Traits
- Trait construction order
- Inicjowanie Trait fields
- Traits extending classes
- Self-types
Funkcje
- Funkcje jako wartości
- Default arguments i named arguments
- Funkcje bez return value
- Funkcje anonimowe
- Funkcje z Function jako parametrem
- Zamknięcia
- Funkcjonalne interfejsy
- Rozwijanie funkcji (ang. Currying)
- Przekazywanie funkcji jako parametru w bloku kodu
- Używanie return
Collections
- Traits collections w Scala: Map, Set i Seq
- Mutable i immutable collections
- Sekwencje
- Listy
- Mutable lists
- Sets
- Operators do pracy z collections
- Standardowe metody do pracy z collections
- Używanie funkcji mapowania, zmniejszania, składania i skanowania
- Zipping
- Iterators
- Data Streams
- Threadsafe Collections
- Parallel collections
- Interakcja z Java collections
Pattern matching
- Pattern matching as a better switch
- Guards
- The variables in patterns
- Type patterns
- Łączenie arrays, lists i tuples
- Regular expressions
- Extractors
- Patterns in variable declarations
- Patterns in for expressions
Case classes, Option type and partial functions
- Сase classes
- Copy method i named parameters
- Sealed classes
- Option type
- Funkcje częściowe
Generics
- Generic classes
- Generic functions
- Type variance
- Upper i lower type bounds
- Typ Use _ for
Implicit conversions
- Użycie domyślnych kluczowych słów do zdefiniowania implicit type
- Import i użycie implicit conversions
- Implicit parameters
Cele
- Przedstawienie programistom języka programowania Scala.
Grupa docelowa
- Kurs jest przeznaczony jest dla programistów Java, ale wskazany jest zarówno dla innych developerów w pełni funckcjonalnych języków (jak C++, C#, itd.).
Wymagania
- Wymagana jest znajomość współczesnego języka programowania OOP. Znajomość języka Java jest wskazana.