Funkcyjne programowanie w JavaScript

LICZBA DNI: 2 (16h)

KOD KURSU: FP/JS

POZIOM SZKOLENIA:

# javascript

# functional-programming

# ramdajs

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 paradygmatu w JavaScript wraz z umiejętnością jego wykorzystania

WYMAGANIA

Umiejętność podstawowego programowania w JavaScript. Podstawowe koncepty t.j. pętle, if-else, funkcje, zmienne, dane (obiekty, arrays), 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 innych języków z wbudowanymi elementami paradygmatu funkcyjnego (np. Python, Ruby, Java)

Budowa kilku projektów/aplikacji

Ćwiczenia pomagające utrwalić omawiane koncepty

Cele szkolenia

Poznanie paradygmatu funkcyjnego programowania w JavaScripcie, jego użyteczność i wartość w pisaniu bardziej bezpiecznych, łatwiejszych w testowaniu i utrzymaniu, nowoczesnych aplikacji.

Program

  • Czym jest JavaScript (JS) w kontekście Funkcyjnego Programowania (FP)?
  • Jakie są benefity pisania kodu w stylu FP?
  • Oduczenie się OOP i imperatywnego kodowania
    • Po co?
    • I jak?
  • Funkcyjne alternatywy dla JavaScript
    • Elm
    • ReasonML
    • Purescript
  • Biblioteki pomagające używania FP w JS
    • RamdaJS
    • ImmutableJS
    • Inne
  • Czyste funkcje
  • Niezmienność danych
  • Funkcje wyższego rzędu oraz funkcje jako first class citizens
  • Deklaratywny, a imperatywny styl kodowania
  • Kolekcje
    • Typowe operacje na kolekcjach z użyciem core API (map, filter, find, etc.)
    • Typowe operacje na kolekcjach z użyciem biblioteki RamdaJS (head, tail, all, any, includes, etc.)
  • Operator pipeline
  • Kompozycja funkcji
  • Przykładowe użycia
    • Z core API
    • Z RamdaJS
  • Przydatne narzędzia wbudowane w JS (np. arrow functions, spread operator)
  • Stosowanie podstawowych konceptów FP w JS (włączając bibliotekę RamdaJS)
    • Praca na kolekcjach
    • Czyste funkcje
    • Niemutowalność danych
    • Funkcje pierwszej kategorii
  • Currying
  • Partial application
  • (Tail) Recursion
  • Zastosowanie bardziej zaawansowanych konceptów używając RamdaJS
  • React
    • Brak mutacji
    • Deklaratywny kod
    • Małe, najlepiej czyste, funkcje
    • Funkcyjne komponenty
  • Redux
    • Redux zainspirowany Architekturą Elm z języka Elm
    • Model, Update, i View
    • Niemutowalny stan aplikacji
    • Jak zmieniać stan, gdy mutowalność nie jest opcją
  • Proste aplikacje w vanilla JS z użyciem RamdaJS i [opcjonalnie] innych bibliotek (np. ImmutableJS)
    • Wyświetlanie dynamicznie renderowanych list HTMLowych
    • Licznik
    • Formy z użyciem wzoru Model-View-Update
  • Aplikacje wykorzystujące poznane koncepty i zastosowania FP z użyciem React lub React+Redux
    • Wyświetlanie dynamicznie renderowanych list HTMLowych
    • Licznik
    • Formy z użyciem wzoru Model-View-Update
  • Do wyboru będzie albo własny pomysł na aplikację, albo skorzystanie z zasugerowanych appek
  • Opcjonalna prezentacja swojej appki innym z wyjaśnieniem wyborów architekturalnych z punkt widzenia funkcyjnego programisty
  • Przydatne linki
  • Refactoring aplikacji jest łatwy, jeśli piszemy czyste funkcje
  • Testy jednostkowe, gdy stosujemy zasady FP
  • Możliwe 'branchnięcie się' z funkcyjnego programowania do reaktywnie-funkcyjnego (np. z biblioteką RxJS)

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.