Szkolenia Compendium CE

Cel szkolenia dlearning

Celem szkolenia jest doprowadzenie uczestników do punktu, w którym będą w wstanie płynnie czytać oraz pisać aplikacje w języku Scala. Zostaną omówione wszystkie kluczowe cechy języka, włącznie z funkcyjną naturą Scali oraz metodami projektowania aplikacji i algorytmów, tak aby optymalnie wykorzystywać naturalne właściwości Scali.

Z racji ogromnej ilości możliwości oraz paradygmatów koniecznych do omówienie podczas nauki Scali, szkolenie to skupia się głównie na samym języku, a frameworki są poruszane jedynie w minimalnym stopniu. Najważniejszymi zewnętrznymi bibliotekami, które zostaną omówione są SBT, ScalaTest oraz Akka.

Omawiane tematy są wspierane przykładami zaczerpniętymi z realnych aplikacji napisanych w języku Scala. Kursanci będą uczestniczyć w szkoleniu sposób aktywny - poprzez pisanie testów jednostkowych, mających za cel "obycie się" z językiem i omawianymi właśnie tematami.

Plan szkolenia Rozwiń listę

  1. Wprowadzenie
    • Plan szkolenia
  2. Delikatne wprowadzenie do języka Scala
    • Czym jest Scala?
    • Wpływy jakich języków można zauważyć w Scali?
    • Dlaczego warto nauczyć się Scali?
  3. "Hello World"
    • "Java w Scali"
    • Idiomatyczny w Scali sposób na "Hello World"
  4. System typów
    • Typy podstawowe
    • Prymitywy?
  5. Klasy
    • Primary constructor
    • Dodatkowe konstruktory
    • Dziediczenie
  6. Metody
    • Jak należy myśleć o funkcjach w Scali?
    • Dlaczego (prawie) wszystko jest metodą?
    • Definicje, Wartości, Leniwe Wartości oraz Zmienne
    • Univorm access principle
    • @tailrec oraz dlaczego jest istotne
    • Używanie adnotacji Javowych
    • override strictness
  7. Obiekty
    • Czym jest "object" w Scali?
    • Kiedy można używać obiektów zamiast klas?
    • Jak używając obiektów zachować testowalny kod
    • Omówienie metody apply()
    • Omówienie metody unapply()
  8. Case Class
    • Czym jest "case class"?
    • Dopasowywanie do wzorców przy pomocy "match"
    • Adnotacja @switch
    • Limits of case classes, and how to fallback to normal classes
  9. Traity
    • Czym jest Trait?
    • Kiedy używać Traitów?
    • Kiedy NIE używać Traitów?
    • Self-Type Annotation - prosta alternatywa dla Dependency Injection?
    • Trait wołający inny trait tej samej instancji obiektu
    • Linearyzacja hierarchii typów
    • Współpraca z interfejsami Java
  10. Type Parameters
    • Czym są?
    • Type Parameters vs. słowo kluczowe "type"
  11. Implicits
    • Co oznacza "implicit"?
    • Jak i po co definiować implicit wartości?
    • Jak rozważany jest scope implicitów?
    • Implicit conversions
  12. Listy parametrów
    • Dlaczego Scala może mieć więcej niż jedną listę parametrów?
    • Implicit parameters
    • Typowe przykłady zastosowań
  13. Kolekcje
    • Rodzaje kolekcji
    • Jak radzić sobie z niezmienntymi (immutable) kolekcjami?
    • Trywialne zrównoleglanie operacji na kolekcjach
    • Czym jest CanBuildFrom[_,_,_]?
  14. Funkcyjne programowanie w języku Scala
    • "Słowo na M" - Monady
    • Przykłady monad - (już wiele widzieliśmy!)
    • Unikanie wartości null dzięki Option[_]
    • Omówienie kilku przykładowych monad
  15. Przykładowe frameworki
    • Najbardziej znane i lubiane biblioteki
    • Jakiego typu bibliotek unikać?
    • ScalaTest oraz Specs2
  16. Akka 2.0
    • Jakie są korzenie Akka?
    • Kiedy i dlaczego używać Akka? Jakie są dostępne alternatywy?
    • Budowanie aplikacji równoległych przy pomocy aktorów
    • Implementacja przykładowej aplikacji bazującej na modelu Aktorowym
  17. SBT - Simple Build Tool
    • Czym jest sbt?
    • Porady dotyczące pracy codziennej przy wykorzystaniu SBT
    • Przykład przygotowania wielomodułowej aplikacji
  18. Ogólne sztuczki oraz porady dotyczące programowania w Scali
    • Kiedy lepiej zastosować "hack" niż zmagać się z type systemem?
    • Porady na współpracę z bibliotekami Javowymi
    • Jak unikać "zbyt cwanego" kodu?
    • Jak rozsądnie używać implicitów i innych bardziej zaawansowanych cech Scali?
  19. Scala 2.10 - zwinny przegląd nowości
    • Czym jest "SIP"?
    • Przegląd nowości w Scala 2.10 wraz z przykładami zastosowań
    • Porady dotyczące pracy w różnych wersjach Scali
  20. Podsumowanie oraz sesja pytań i odpowiedzi
Pobierz konspekt szkolenia w formacie PDF

Dodatkowe informacje

Wymagania

Szkolenie to jest przeznaczone dla doświadczonych programistów Java (lub porównywalnej technologii), ponieważ część powtarzających się w wielu technologiach pojęć zostanie jedynie przedstawiona pokrótce, celem większego skupienia się na elementach wyjątkowych w Scali. Znajomość języków funkcyjnych, takich jak Haskell bądź Lisp mogą pomóc w nauce, jednak nie są wymagane.

Poziom trudności
Czas trwania 2 dni
Certyfikat

Uczestnicy szkolenia otrzymują certyfikat wystawiony imiennie oraz na firmę, sygnowany przez Compendium Centrum Edukacyjne.

Prowadzący Wykładowca Compendium Centrum Edukacyjnego.
Zobacz więcej szkoleń Compendium CE

Prosimy o wypełnienie poniższego formularza, jeśli chcą Państwo uzyskać więcej informacji o powyższym szkoleniu.







2000 PLN NETTO

FORMA SZKOLENIA ?

zamknij

Szkolenie stacjonarne

Szkolenia stacjonarne w Compendium CE odbywają się najczęściej w naszych lokalizacjach w Krakowie i Warszawie, ale także w miejscu ustalonym przez klienta. Grupa uczestnicząca w szkoleniu spotyka się w danym miejscu o określonym czasie i wraz z trenerem aktywnie uczestniczy w laboratoriach.

Szkolenie dlearning

W szkoleniach Compendium Distance Learning możesz uczestniczyć z dowolnego miejsca na świecie. Kursanci, dzięki zaawansowanej technologii, którą dostarcza Compendium CE, stale widzą i słyszą trenera, mogą mu zadawać pytania poprzez chat i mikrofon, a także uczestniczą w ćwiczeniach i laboratoriach, które rozwiązują wraz z prowadzącym. Po więcej informacji zajrzyj na stronę dlearning.eu

MATERIAŁY SZKOLENIOWE ?

zamknij

Materiały papierowe

Materiały tradycyjne: cena zawiera standardowe materiały wydawane w postaci książek papierowych, drukowanych lub innej, w zależności od ustaleń z producentem.

Materiały elektroniczne

Materiały elektroniczne: są to materiały szkoleniowe w wersji elektronicznej, które w zależności od dostawcy udostępniane są za pomocą dedykowanych aplikacji: Skillpipe, eVantage itd. lub w postaci dokumentów PDF.

Materiały ctab

Materiały ctab: cena zawiera tablet ctab oraz materiały szkoleniowe w formie elektronicznej bądź tradycyjne materiały szkoleniowe i materiały dodatkowe dostarczone w wersji elektronicznej w zależności od ustaleń z producentem (w postaci dokumentów PDF lub EPUB). Tak dostarczone materiały są przystosowane pod kątem wyświetlania ich na tablecie ctab. Po więcej informacji zajrzyj na stronę ctab.

 

WYBIERZ TERMIN SZKOLENIA

Brak ustalonych terminów dla tego szkolenia.

Zaproponuj własny termin