Budowanie aplikacji w języku Elm

LICZBA DNI: 4 (32h)

KOD KURSU: ELM/APP

POZIOM SZKOLENIA:

# elm

# functional-programming

# elm-ui

# spa

Szkolenie na zamówienie

Szkolenie dostosowane do potrzeb Twojego zespołu. Dostępne WYŁĄCZNIE na zamówienie.

  • Dostosowany program
  • Indywidualna wycena
  • Dowolny termin

Interesuje Cię ta tematyka i szukasz szkolenia tylko dla siebie?

O szkoleniu

DLA KOGO?

Programiści chcący poszerzyć swoje kompetencje o:

zrozumienie funkcyjnego programowania (które dalej można wdrożyć w innych językach, włączając w to JavaScript)

zapoznanie sie z czysto funkcyjnym językiem, który choć dużo prostszy to zainspirowany jest językiem Haskell

umiejętność budowy pewnych, zwięzłych, i bezpiecznych (as in "bug-free") aplikacji browserowych w języku Elm

WYMAGANIA

Umiejętność programowania w jakimkolwiek języku. Podstawowe koncepty t.j. pętle, if-else, funkcje, zmienne, itp. nie powinny być Ci obce :)

ZALETY

Warsztatowy charakter zajęć

Teoretyczna i praktyczna wiedza dotycząca funkcyjnego programowania, którą dalej można aplikować do języków funkcyjnych (również backendowych), jak i języków z wbudowanymi elementami paradygmatu funkcyjnego (np. JavaScript, Python, Java)

Budowa kilku projektów/aplikacji

Ćwiczenia pomagające utrwalić omawiane koncepty

Cele szkolenia

Poznanie języka Elm wraz ze standardowymi i rekomendowanymi bibliotekami, w kontekście zarówno teoretycznym, jak i praktycznym (budowa prostych i nisko-zaawansowanych aplikacji przeglądarkowych)

Program

  • Dlaczego Elm?
  • Elm, a JavaScript
  • Konfiguracja narzędzi
    • elm CLI
    • elm-format
  • Czyste funkcje
  • Niezmienność danych
  • Funkcje wyższego rzędu oraz funkcje jako first class citizens
  • Podstawowe typy danych
  • Inferencja typów
  • Custom (Algebraic) types, czyli własne typy danych
  • Alias typów
  • Moduły
  • Funkcje
    • Anonimowe/Nazwane
    • Eksportowane/Nieeksportowane
  • Rekordy i listy
    • Praca z rekordami (tworzenie, update)
    • Praca z listami (head, tail, map, filter, etc.)
  • Operator pipeline
  • Kompozycja funkcji
  • Stosowanie podstawowych konceptów FP w Elm
  • Pisanie prostego kodu w Elm używając typów, funkcji, i modułów
  • Currying
  • Partial application
  • (Tail) Recursion
  • Architektura Elm (Model-Update-View)
    • Podstawowe modelowanie danych/stanu aplikacji
    • Update oraz Msg, czyli logika aplikacji
    • Wyświetlanie danych w przeglądarce oraz interakcja użytkownika z aplikacją
    • Subskrypcje i komendy
  • Maybe, Result
  • Interop z JavaScript
  • Enkoderki i dekoderki JSON
  • HTTP
  • Jak Elm radzi sobie z side-effects?
  • Proste aplikacje w Elm
    • Wyświetlanie dynamicznie renderowanych list HTMLowych
    • Licznik
    • Formy
    • HTTP GET'owanie z publicznie dostępnego API (np. Giphy, Chuck Norris Jokes)
    • Użycie subskrypcji do pracy z czasem
    • Random
  • Czyste funkcje zamiast komponentów
  • Podział plików ze względu na ich funkcje w aplikacji
  • Przekazywanie rekordów jako parametrów funkcji
  • Unikanie type blindness poprzez pakowanie danych w unikatowe typy
  • Wczesne rozpakowanie typów Maybe i Result dla innych funkcji
  • Pewność, że niemożliwe stany aplikacji są niemożliwe
  • Parse, don't validate
  • Budowanie danych z wielu funkcji, czyli wzór budowniczego
  • SPA
  • Elm-UI
  • Stworzenie SPA aplikacji w Elm
    • Użycie poznanych konceptów funkcyjnego programowania
    • Użycie poznanych wzorów budowy aplikacji
    • Pełna architektura Elm (model, update, view, komendy, subskrypcje)
    • Budowa UI z użycie biblioteki Elm-UI
  • Jak utrzymywać aplikacje Elm
  • Refactoring
  • Unit i fuzz testing

POLITYKA COOKIES:

Korzystamy z plików cookies, by móc jak najlepiej dostosować stronę do Twoich potrzeb oraz wyświetlać Ci przydatne i adekwatnych dla Ciebie reklamy w serwisie i poza nim. Możesz kontrolować ustawienia ciasteczek w swoich ustawieniach swojej przeglądarki. Odwiedzając tę stronę, wyrażasz zgodę na wykorzystywanie przez nas plików cookies.