Budowanie aplikacji w języku Elm
Czas trwania szkolenia:4 dni (32h)
Kod kursu:ELM/APP
Poziom zaawansowania:
O szkoleniu Budowanie aplikacji w języku Elm
W cenie otrzymasz:
- Materiały szkoleniowe
- Certyfikat ukończenia szkolenia
- W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Dla kogo?
- Programiści chcący poszerzyć swoje kompetencje o:
- zrozumienie programowania funkcyjnego (które dalej można wdrożyć w innych językach, włączając w to JavaScript)
- zapoznanie się z czysto funkcyjnym językiem, który choć dużo prostszy to zainspirowany jest językiem Haskell
- umiejętność budowy bezpiecznych (as in „bug-free”) aplikacji przeglądarkowych
Wymagania
- Podstawowa umiejętność programowania w dowolnym języku
Zalety
- Warsztatowy charakter zajęć
- Teoretyczna i praktyczna wiedza dotycząca programowania funkcyjnego, 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
- Praktyka przed teorią - wszystkie szkolenia technologiczne prowadzone są w formie warsztatowej. Konieczna teoria jest wyjaśniana na przykładzie praktycznych zadań
- Konkretne umiejętności - w ramach każdego szkolenia rozwijamy praktyczne umiejętności związane z daną technologią i tematyką
- Nauka z praktykami - wszyscy trenerzy na co dzień pracują w projektach, gwarantuje to dostęp do eksperckiej wiedzy i praktycznego know-how
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
Wprowadzenie do Elm
- Dlaczego Elm?
- Elm, a JavaScript
- Konfiguracja narzędzi
Wprowadzenie do programowania funkcyjnego
- Czyste funkcje
- Niezmienność danych
- Funkcje wyższego rzędu oraz funkcje jako first class citizens
Podstawy języka Elm
- Podstawowe typy danych
- Inferencja typów
- Custom (Algebraic) types, czyli własne typy danych
- Alias typów
- Moduły
- Funkcje
- Rekordy i listy
- Operator pipeline
- Kompozycja funkcji
Ćwiczenia
- Stosowanie podstawowych konceptów FP w Elm
- Pisanie prostego kodu w Elm używając typów, funkcji, i modułów
Bardziej zaawansowane koncepty programowania funkcyjnego
- Currying
- Partial application
- (Tail) Recursion
Średnio-zaawansowany Elm
- Architektura Elm (Model-Update-View)
- Maybe, Result
- Interoperacyjność z JavaScript
- Enkoderki i dekoderki JSON
- HTTP
- Jak Elm radzi sobie z side-effects?
Ćwiczenia
- Proste aplikacje w Elm
Podstawowe wzory
- 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
Niebanalne użycie Elm
- SPA
- Elm-UI
Ćwiczenia
- Stworzenie aplikacji SPA w Elm
Co dalej?
- Jak utrzymywać aplikacje Elm
- Refactoring
- Unit i fuzz testing