Nowoczesny JavaScript

Zarejestruj tutaj lub napisz bezpośrednio

Opis

Celem kursu jest przygotowanie uczestnika do umiejętnego i poprawnego dobierania komponentów języka JavaScript (łączącego wiele paradygmatów języków programowania, posiadającego różnorodność zastosowań tj. funkcyjny vs obiektowy, statyczny vs dynamiczny, kompilowany vs interpretowany i in.) oraz języka TypeScript do odpowiednich zastosowań biznesowych.

Dzięki szkoleniu uczestnik:

  • programuje w JavaScript identyfikując poprawnie elementy nowoczesnego języka JavaScript,
  • stosuje nowe elementy języka (Spread / rest operator dla obiektów, Async / await, Asynchroniczne iteratory / generatory) w serwerowych aplikacji tworzonych w Node.js,
  • stosuje nowe elementy języka (Spread / rest operator dla obiektów, Async / await, Asynchroniczne iteratory / generatory) w klienckich aplikacjach tworzonych w Angular oraz React.js,
  • wykorzystuje techniki programowania asynchronicznego oraz reaktywnego,
  • korzysta z kluczowych elementów programowania funkcyjnego (między innymi funkcyjnej organizacji kodu, deklaratywnego oraz niezmienniczego programowania ) oraz śledzi korzyści wynikające z jego zastosowania.

Czas trwania: 3 dni

Szczegóły

  • ES5
    • Historia JavaScript
    • Typy prymitywne, operatory
    • Obiekty, tablice
    • Sterowanie przepływem programu, obsługa błędów
    • Funkcja, działanie this oraz arguments
    • Prototypowe dziedziczenie
  • ES6 (ES2015)
    • Proces projektowania JavaScript
    • Składowe ES6, transkompilacja kodu, polyfills
    • Domyślne wartości argumentów
    • Object Literal Extensions
    • Template Literals
    • Let, const
    • Spread / rest operator
    • Destructuring
    • Iteratory, generatory
    • Moduły, klasy
    • Nowe elementy JavaScript (ES2016, ES2017, ES2018, …)
      • Spread / rest operator dla obiektów
      • Async / await
      • Asynchroniczne iteratory / generatory
  • TypeScript
    • Opcjonalna typowalność
    • Funkcje
    • Interfejsy
    • Intersection & Union Types
    • Nullable Types
    • String literal types
    • Discriminated unions
    • Klasy
    • Typy generyczne
    • Pliki deklaracyjne
    • Dekoratory
    • Typowanie strukturalne (duck typing)
  • Programowanie funkcyjne
    • Imperatywne vs deklaratywne programowanie
    • Obiektowa vs funkcyjna organizacja kodu
    • Funkcje wyższego rzędu (higher-order function), first class function
    • Leniwa ewaluacja (lazy evaluation), sekwencje vs kolekcje
    • Programowanie niezmiennicze (immutable)
    • Algebraiczne typu danych, rekordy
    • Dopasowanie do wzorca (pattern matching)
    • Efekty uboczne (side effects), czyste funkcje
    • Opcjonalne typy danych
  • Programowanie asynchroniczne oraz reaktywne
    • Wywołania zwrotne (callbacks), continuation-passing style, async.js
    • Promise, async/await
    • Observable
    • Programowanie reaktywne z wykorzystaniem RxJS
    • Asynchroniczne iteratory/generatory
  • Wybrane elementy Node.js, Angular, React.js