Scala - programowanie obiektowo-funkcyjne

Kod: Scala-Scala
Kategoria: Scala
Forma: 50% wykłady / 50% warsztaty
Czas trwania: 3-4 dni
Grupa docelowa: developerzy
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.
Data i dokładny zakres do ustalenia podczas analizy przed-szkoleniowej.

Szkolenie zostało opracowane z myślą o uczestnikach posiadających doświadczenie programistyczne w językach wywodzących się z C++ (Java, C#, PHP).

Podczas szkolenia nie poruszamy nieistotnych zagadnień, które rozpraszają początkujących

Skupiamy się na technikach przygotowujących do tworzenia aplikacji enterprise/webowych.

Podczas szkolenia w naturalny sposób zostały plecione narzędzia codziennej pracy oraz najlepsze praktyki tworzenia czytelnego, rozszerzalnego i testowalnego kodu.

Program został rozszerzony o najbardziej popularne frameworki: Testowanie, DSL, REST, Web.

Wyróżniki szkolenia

Podczas zajęć możesz oczekiwać szczególnych akcentów położonych na poniższe aspekty:

  • Myślenie w stylu funkcyjnym i wzorce
  • Najpopularniejsze narzędzia i frameworki
  • Łatwe przejście dla programistów Java

Program Szkolenia

Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.

  1. Wstęp
    1. Historia języka
    2. Programowanie funkcyjne
  2. Podstawy
    1. Konfiguracja środowiska
    2. Składnia
    3. Podstawowe typy danych
    4. Definiowanie funkcji
    5. Definiowanie klas
      1. Ciało klasy jako konstruktor
      2. Definiowanie drugorzędnych konstruktorów
      3. Ograniczenia narzucane przez Scalę na konstruktory
    6. Definiowanie obiektów
      1. Semantyka i działanie słowa kluczowego object
      2. Companion Object
      3. Object vs. Singleton
    7. Operatory
    8. Klasy Abstrakcyjne
    9. Case class i case object
    10. Zagnieżdżanie
    11. Modyfikatory dostępu
    12. Ekstrapolacja String
    13. Type Parameters
      1. Covariance oraz Contravariance
      2. Różnice w traktowaniu type parameters w stosunku do Javy
    14. Trait
      1. Dlaczego nie dziedziczenie wielobazowe?
      2. Linearyzacja hierarchii typów
    15. Self Type Annotation
      1. Alternatywa dla “wstrzykiwania zależności”
    16. Leniwa ewaluacja
      1. Poprzez słowo kluczowe lazy
      2. Poprzez mechanizm call-by-name
      3. Klasyczne pułapki oraz jak ich unikać
    17. Implicits
      1. Implicit methods
      2. Implicit conversions
      3. Implicit parameters
      4. “Pimp my Library” pattern
      5. Znaczenie IDE podczas pracy z implicitami
  3. Programowanie Obiektowe
    1. Integracja z Javą
    2. Ducktyping
    3. Traits
    4. Niejawne konwersje
    5. Parametryzacja typów i typy generyczne
  4. Programowanie funkcyjne
    1. Funkcje jako obiekty
    2. Obiekty jako funkcje
    3. Funkcje wyższych rzędów
    4. Funkcje częściowo zaaplikowane
    5. Pattern matching
    6. Myślenie w stylu funkcyjnym w Scali?
      1. Wzorce wbudowane w język
      2. Realizacja założeń S.O.L.I.D. przy pomocy Scali
  5. Kolekcje
    1. Praca z kolekcjami w Scali
      1. Design biblioteki, na przykładzie List
      2. Jak radzić sobie z niezmiennymi kolekcjami?
    2. Java Interop
    3. CanBuildFrom
  6. Kompilator
    1. Makra
    2. Wtyczki
  7. Biblioteki i Frameworki
    1. Lift
    2. Play
    3. Scalaz
    4. Specs
    5. Akka - biblioteka służąca tworzeniu rozproszonych / współbieżnych systemów
      1. Implementacja prostego systemu współbieżnego przy z zastosowaniem modelu Aktorów
      2. Composable Futures - ponieważ aktory bywają zbyt skomplikowane
    6. AntiXml


Pobierz program w formacie PDF

Trenerzy

Poznaj ekspertów, którzy mogą poprowadzić Twoje szkolenie.

Materiały związane ze szkoleniem

Idea renesansowej pracowni - Bottegi zakłada nieustanną pracę jej członków i dzielenie się jej wynikami.

Zapytaj o szkolenie

Imię i nazwisko:
Firma:
E-mail:
Nr tel:
Temat:
Wiadomość:

Jeżeli preferujesz osobisty kontakt to zawsze możesz zadzwonić.

Iwona Sobótka

Koordynatorka szkoleń