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
Certyfikat

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

Prowadzący Wykładowca Compendium Centrum Edukacyjnego.
Lokalizacje Kraków - ul. Tatarska 5, II piętro, godz. 9:00 - 16:00
Warszawa - ul. Bielska 17, godz. 9:00 - 16:00
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.







Cena szkolenia

  • Forma szkolenia: stacjonarne

  • Forma szkolenia: dlearning

2000 PLN NETTO

Czytaj więcej o ctab

Czas trwania

2 dni

Dostępne terminy

Brak ustalonych terminów dla tego szkolenia.

Zaproponuj własny termin