Szkolenie dostępne na zamówienie
Sieciowe aplikacje w Elixir i Phoenix
Jasne i przyjazne wprowadzenie do dynamicznego, funkcyjnego języka Elixir i frameworku Phoenix oraz pracy z Ecto (ORM), templates (Eex), websockets (channels), i LiveView (które pozwala na interaktywność bez użycia JavaScriptu). Dodatkowo, warsztat wprowadza w temat współbieżności (OTP), które Elixir czerpie z Erlanga
Czas trwania szkolenia:5 dni (40h)
Poziom zaawansowania:
Kod kursu:ELIXIR/APPS
Sieciowe aplikacje w Elixir i Phoenix
Cele szkolenia
- Poznanie języka Elixir wraz z frameworkiem Phoenix, w kontekście zarówno teoretycznym, jak i praktycznym (budowa prostych i nisko-zaawansowanych aplikacji sieciowych)
- Poznanie podstaw współbieżności w Elixir (OTP, GenServers)
Dla kogo?
- Programiści chcący poszerzyć swoje kompetencje o:
- zrozumienie funkcyjnego programowania (które dalej można wdrożyć w wielu innych językach backendowych, które wspierają paradygmat funkcyjny)
- zapoznanie się z dynamicznie funkcyjnym językiem, który korzysta z wielu lat doświadczenia Erlanga, ale jest równie przyjazny programiście, co Ruby
- umiejętność budowy aplikacji sieciowych w języku Elixir, które używają typowych, podstawowych scenariuszy backendowych
Zalety
- Warsztatowy charakter zajęć
- Teoretyczna i praktyczna wiedza dotycząca funkcyjnego programowania, którą dalej można aplikować do języków funkcyjnych (np. Erlang, Haskell), 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
Wymagania
- Umiejętność programowania w jakimkolwiek języku. Podstawowe koncepty t.j. pętle, if-else, funkcje, zmienne, itp. nie powinny być Ci obce :)
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
Program
Wprowadzenie do Elixir
- Dlaczego Elixir?
- Elixir LiveView, a JavaScript
- Konfiguracja narzędzi
Wprowadzenie do funkcyjnego programowania
- Czyste funkcje
- Niezmienność danych
- Funkcje wyższego rzędu oraz funkcje jako first class citizens
Podstawy języka Elixir
- Podstawowe typy danych
- Moduły
- Funkcje
- Mapy i kolekcje
- Operator pipe
- Kompozycja funkcji
- Pattern matching
- case, cond, if-else
Ćwiczenia
- Stosowanie podstawowych konceptów FP w Elixir
- Pisanie prostego kodu w Elixir używając funkcji i modułów
Bardziej zaawansowane koncepty funkcyjnego programowania
- Currying
- Partial application
- (Tail) Recursion
Średnio-zaawansowany Elixir
- Procesy, Taski, Stan, trzymanie danych w pamięci
- Structy, Protokoły
- List comprehensions
- Sigils
- Try, catch, oraz rescue
Ćwiczenia
- Proste aplikacje w Elixir, np
Współbieżność
- Czym jest Erlang'owy OTP (Open Telecom Platform)?
- GenServer
- Supervisor
- ETS (Erlang Term Storage)
Ćwiczenia
- Proste aplikacje w Elixir z użyciem konceptów współbieżności, np
Framework Phoenix
- Foldery i pliki nowej aplikacji
- Flow requests, czyli app lifecycle
- Router
- Struktura MVC (Model-View-Controller)
- Ecto (Phoenixowy ORM)
Ćwiczenia
- Trzy proste aplikacje Phoenix
Co dalej?
- Aplikacje mieszane (np. renderowanie html plus channels)
- Refactoring
- Testowanie jednostkowe
- Dlaczego warto pisać czyste funkcje?
- Elixir/Phoenix do sieci i do internetu rzeczy (IoT)