Kod: WEB-024
Czas trwania: 36 godzin
Czas trwania: 36 godzin
Opis szkolenia
Szkolenie ma na celu pomoc w zrozumieniu skomplikowanych funkcji, konstrukcji składni i wewnętrznych mechanizmów języka JavaScript. Będzie przydatne dla programistów, którzy mają już doświadczenie w JavaScript, ale chcą uwolnić pełny potencjał języka i zacząć korzystać z różnych mniej znanych, ale mimo to bardzo ciekawych i pomocnych możliwości.Plan szkolenia
Szczegóły dotyczące podstaw JavaScript- Obiekt klasy
- Deskryptory
- Metody obiektowe
- Dziedziczenie prototypowe
- Symbole
- Iteratory
- Generatory
- Tworzenie obiektów do iteracji
- Generatory asynchroniczne
Szczegółowe omówienie typów w JavaScript
- Przegląd typów
- Number (liczby całkowite i zmiennoprzecinkowe)
- Liczba zmiennoprzecinkowa i problemy z zaokrągleniem
- String (ciągi znaków - tekst)
- Boolean (wartości logiczne)
- Konwersje typów
- Map, Set, WeakMap, WeakSet
- BigInt
- ArrayBuffer
- TypedArray
- DataViews
- Blobs
- FileReader
- Przetwarzanie wgranych plików
Programowanie asynchroniczne
- Wywołania asynchroniczne
- Wykorzystanie ich w wywołaniach zwrotnych
- Klasa Promise (obietnica)
- Obsługa wyjątków klasy Promise
- Metody all(), any(), race(), allSettled()
- Anulowanie obietnicy z użyciem Promise.race()
- Anulowanie obietnicy z użyciem AbortController
- Składnia async/await
- Składnia async/await: Obsługa wyjątków
- Składnia async/await: await najwyższego poziomu
- Składnia async/await: Uwarunkowania
- Architektura REST
- Kody statusu HTTP
- Metody HTTP
- Bezstanowość i skalowalność
- Operacje CRUD i usługi Rest
- Format zwracanych danych: XML, JSON, XHTML
- Funkcja pobierania
- Pobieranie z możliwością przerwania żądania
- Biblioteka Axios dla wywołań REST
- Obsługa błędów w Axios
- Anulowanie żądania w Axios
- Interceptory Axios
- Protokół WebSocket
- WebSocket w przegládarce
- WebSocket na serwerze (Node.js)
- Kiedy korzysta z WebSocket?
Wątki robocze i programowanie równoległe
- Wątki robocze
- Rodzaje wątków roboczych
- API wątku roboczego
- Rejestracja wątku roboczego
- Przypadki użycia wątków roboczych
- Wątki robocze usług
- API buforowania
- Rejestracja wątku roboczego usługi
- Cykl życia wątku roboczego
- Wątek roboczy usługi jako serwer proxy
- Strategia Cache First (Cache Falling Back to Network)
- Strategia Network First (Network Falling Back to Cache)
- Strategia Stale-While-Revalidate
- Z której strategii korzystać
- Strategia aktualizacji pamięci podręcznej dla komunikatu push
- Strategia aktualizacja pamięci podręcznej po synchronizacji w tle
Programowanie funkcjonalne
- Funkcje jako dane
- Argumenty funkcji i tablice argumentów
- Funkcje jako metody
- Wywoływanie i stosowanie metod
- Wiązanie funkcji z obiektem
- Domknięcia
- Tworzenie wartości odgrodzonej poprzez domknięcie
- Funkcja konstruktora
- Funkcje tablicowe: map/filtr/reduce
- Paradygmaty programowania
- Deklaratywne a imperatywne
- Programowanie funkcjonalne
- Funkcje wyższego rzędu
- Funkcje czyste
- Zalety funkcji czystych
- Niezmienność
- Niezmienność obiektów: Operator rozprzestrzeniania
- Korzyści z niezmienności
- Immutable.js
- Zagnieżdżone struktury danych w Immutable.js
- Monady i kompozycja funkcjonalna
- Funkcja pipe()
- Dekompozycja funkcji
- Monady dla operacji SIMD
- Częściowe zastosowanie funkcji
- Rozwijanie
- Bezpieczeństwo wartości null
- Wzorzec projektowy obiektów pustych
- Monada Maybe
- Częściowo zdefiniowana funkcja
- Dobre praktyki w pisaniu czytelnego kodu funkcji
- Funkcjonalne wzorce projektowe
- Wzorzec projektowy MVC z funkcjami czystymi
- Wzorzec projektowy obserwatora
- Wzorzec projektowy pozyskiwania zdarzeń
- Wzorzec projektowy REDUX
- Narzędzia deweloperskie REDUX
- Zalety REDUX
- Wzorzec projektowy programowania reaktywnego (RxJS)
- Operatory filter/map/take
- Operatory MergeMap/ConcatMap/SwitchMap
- Operatory Window/Buffer
- Operatory Sample/Throttle/Debounce
- Korzyści z programowania reaktywnego i przypadki użycia
Cele
Szkolenie pozwoli uczestnikom:- lepiej zrozumieć język JavaScript;
- zapoznać się szczegółowo z typami JavaScript i konwersjami typów;
- nauczyć się programowania asynchronicznego;
- wykorzystywać usługi REST i websockety do komunikacji z serwerem;
- wykorzystywać wątki robocze i programowanie równoległe;
- wykorzystywać wątki robocze usług do buforowania;
- stosować programowanie funkcjonalne i reaktywne.
Grupa docelowa
- Programiści JavaScript
- Programiści TypeScript
- Programiści aplikacji webowych
- Programiści NodeJS