Menu Zamknij

Kurs JavaScript / TypeScript Fullstack

Opis kursu

  • Profesjonalne przygotowanie do pracy na stanowisku programisty w wybranym języku programowania oraz powiązanymi z nim bibliotekami oraz frameworkami.
  • Nauka od podstaw po zaawansowane rozwiązania komercyjne.
  • Zoptymalizowany kod napisany zgodnie z dobrymi praktykami programistycznymi.
  • Szkolenie według planu dopasowanego do najnowszych standardów IT.
  • Nagrania ze spotkań grupowych, które możesz oglądać kiedy tylko chcesz.
  • Ogromna ilość zadań teoretycznych i praktycznych o różnym poziomie trudności.
  • Wsparcie mentora przy rozwiązywaniu problemów związanych z pytaniami teoretycznymi, zadaniami praktycznymi i projektami komercyjnymi.
  • Elastyczny kontakt z mentorem.
  • Profesjonalne przygotowanie do rozmowy kwalifikacyjnej.
  • Profesjonalnie przygotowane portfolio z rozbudowanymi projektami komercyjnymi.
  • Skuteczne techniki nauki programowania.
promocja ikona
PROMOCJA – pierwsze spotkanie GRATIS

Już teraz

zapisz się na kurs​

Zostaw swoje namiary, a skontaktuję się z Tobą w sprawie kursu

    * - pola obowiązkowe

    Administratorem danych osobowych jest KM PROGRAMS KRZYSZTOF MAKOWSKI z siedzibą przy ul. Cicha 7, 42-454 Niegowonice, Polska. Dane osobowe osób korzystających z formularza kontaktowego przetwarzane są w celu identyfikacji nadawcy oraz obsługi zapytania przesłanego przez udostępniony formularz. Więcej informacji o przetwarzaniu danych osobowych, w tym o przysługujących Ci uprawnieniach, znajduje się w Polityce Prywatności.

    Plan kursu

    • Przygotowanie środowiska programistycznego do pisania aplikacji w JavaScript
    • Zmienne i typy danych
    • Deklaracja i definicja
    • Typy prymitywne oraz typy obiektowe
    • Typy i wartości specjalne: null, undefined, NaN i inne
    • Literały
    • Słowa kluczowe var, let oraz const
    • Typowanie dynamiczne i statyczne
    • Zmienne i obiekty globalne
    • Block scoping
    • Operatory typeof oraz instanceof
    • Konwersje pomiędzy typami
    • Wartości truthy oraz falsy
    • Optional chaining
    • Instrukcje warunkowe i pętle
    • Pętle for-of, for-in oraz for-await-of
    • Słowa kluczowe break oraz continue
    • Mechanizmy porównywania zmiennych i obiektów
    • Operatory binarne
    • Pozostałe wyrażenia i operatory
    • Priorytety operatorów
    • Klasa Math
    • Klasa Number
    • Data i czas
    • Typ Symbol i jego właściwości
    • Rzucanie i obsługa wyjątków
    • Zagadnienia uzupełniające
    • Sposoby tworzenia tablic
    • Operacje na tablicach
    • Obiekt iterable oraz mechanizm iteratora
    • Klasa Array i metody zarządzające tablicami
    • Praktyczne przykłady przetwarzania tablic z wykorzystaniem dostępnych metod tablicowych
    • Obiekty Array-like
    • Konwersje obiektów iterable oraz wartości Array-like do tablic
    • Tablice wielowymiarowe regularne i nieregularne
    • Kodowanie i przechowywanie napisów
    • Sposoby tworzenia napisów
    • Niemodyfikowalność napisów
    • Napisy wielowierszowe
    • Raw strings
    • Napisy jako obiekty iterowalne
    • Dostęp do pojedynczych znaków w napisie
    • Mechanizm destrukturyzacji w pracy z napisami
    • Konkatenacja oraz interpolacja napisów
    • Obsługa sekwencji specjalnych Unicode
    • Porównywanie napisów
    • Parsowanie napisów
    • Wyrażenia regularne
    • Prezentacja flag do pracy z wyrażeniami regularnymi
    • Przegląd metod JavaScript wykorzystujących wyrażenia regularne
    • Zarządzanie danymi w formacie JSON
    • Zagadnienia uzupełniające
    • Klasyfikacja funkcji (ordinary functions, specialized functions)
    • Sposoby implementowania funkcji
    • Funkcje anonimowe
    • Wyrażenia funkcyjne
    • Funkcje zagnieżdżone
    • Funkcje strzałkowe
    • Funkcje callback
    • Generatory
    • Wzorzec IIFE
    • Obiekt Function
    • Obiekt GeneratorFunction
    • Dynamiczne wykonywanie kodu – eval
    • Przegląd funkcji wbudowanych
    • Parametry domyślne funkcji
    • Parametry nazwane funkcji
    • Parametry opcjonalne funkcji
    • Mechanizm destrukturyzacji w funkcjach
    • Mechanizm trailing commas
    • Operator spread w pracy z funkcjami
    • Zmienna arguments oraz mechanizm rest parameters
    • Sposoby zwracania wartości przez funkcje
    • Słowo kluczowe this w pracy z funkcjami
    • Sposoby implementowania metod w klasach i obiektach
    • Closures
    • Zagadnienia uzupełniające
    • Omówienie założeń programowania obiektowego
    • Obiekty jako rekordy oraz jako słowniki
    • Tworzenie obiektu z wykorzystaniem notacji literału
    • Tworzenie obiektu z wykorzystaniem konstruktora
    • Zarządzanie właściwościami obiektu
    • Dynamiczne wyznaczanie nazwy klucza / właściwości w obiekcie
    • Zarządzanie atrybutami właściwości
    • Wykorzystanie operatora spread do pracy z obiektami
    • Definiowanie metody w obiekcie
    • Przegląd wbudowanych metod obiektu
    • Przesłanianie metod wbudowanych
    • Sposoby kopiowania obiektów
    • Zarządzanie tablicą obiektów
    • Przegląd metod klasy Object
    • Właściwość __proto__
    • Tworzenie klasy z wykorzystaniem podejścia class declaration
    • Tworzenie klasy z wykorzystaniem podejścia class expression
    • Pola składowe w klasie
    • Metody składowe w klasie
    • Sposoby definiowania składników prywatnych klasy
    • Konstruktory
    • Składniki i bloki statyczne
    • Dziedziczenie
    • Słowo kluczowe super
    • Przesłanianie metod w klasach pochodnych
    • Prototypy w kontekście dziedziczenia
    • Symulowanie dziedziczenia wielokrotnego – mixin classes
    • Zarządzanie this w pracy z klasami oraz obiektami
    • Przykłady użycia metod call oraz bind
    • Zagadnienia uzupełniające
    • Omówienie hierarchii kolekcji
    • Wzorzec projektowy iterator
    • Zarządzanie obiektami klasy Array – przypomnienie
    • Pętle for-of oraz for-await-of w pracy z kolekcjami
    • Zarządzanie obiektami klasy ArrayBuffer
    • Widoki klasy ArrayBuffer: Typed Array oraz DataView
    • Konwersje pomiędzy Typed Array oraz zwykłą tablicą
    • Łączenie kilku obiektów Typed Array
    • Tworzenie i zarządzanie obiektami typu Map
    • Konwersja pomiędzy mapą oraz obiektem
    • Tworzenie i zarządzanie obiektami typu WeakMap
    • Implementowanie mechanizmu cache za pomocą typu WeakMap
    • Zarządzanie prywatnymi składnikami klasy za pomocą typu WeakMap
    • Tworzenie i zarządzanie obiektami typu Set
    • Unia, intersekcja oraz różnica kolekcji typu Set
    • Tworzenie i zarządzanie obiektami typu WeakSet
    • Mechanizm destrukturyzacji w pracy z kolekcjami
    • Uzupełnienie wiadomości o generatorach
      Zagadnienia uzupełniające
    • Architektura i zastosowanie narzędzia Webpack
    • Architektura i zastosowanie narzędzia Babel
    • Przygotowanie pliku package.json
    • Zarządzanie dependencies
    • Konfiguracja modułów potrzebnych do pracy z Webpack oraz Babel
    • Utworzenie aplikacji z wykorzystaniem Webpack oraz Babel
    • Praca z plikiem konfiguracyjnym Webpack
    • Praca z plikiem konfiguracyjnym BabelDołączanie pluginów
    • Konfiguracja projektu do pracy z JavaScript
    • Konfiguracja projektu do pracy z plikami SCSS oraz stylami CSS
    • Konfiguracja projektu do pracy z plikami graficznymi
    • Konfiguracja projektu do pracy z biblioteką Bootstrap
    • Uruchomienie Live Server dla aplikacji Webpack
    • Przygotowanie skryptów uruchomieniowych
    • Przygotowanie konfiguracji do pracy w trybie developerskim oraz w trybie produkcyjnym.
    • Konteneryzacja aplikacji Webpack
    • Zagadnienia uzupełniające
    • Omówienie założeń programowania asynchronicznego
    • Event loop
    • Callbacks
    • Zdarzenia jako jeden z mechanizmów asynchroniczności
    • Typ Promise
    • Metody resolve oraz reject
    • Metody then oraz catch
    • Omówienie stanów obiektu typu Promise
    • Sposoby zwracania danych z poziomu obiektu typu Promise
    • Rzucanie wyjątków przez obiekt typu Promise
    • Implementacja funkcji asynchronicznych w oparciu o typ Promise
    • Wywołania kaskadowe bytów asynchronicznych
    • Promise.all
    • Implementacja mechanizmu fork-join z wykorzystaniem Promise.all
    • Słowa kluczowe async oraz await
    • Natychmiastowe wywołania asynchronicznych funkcji strzałkowych
    • Sekwencyjne wywołania funkcji asynchronicznych
    • Słowa kluczowe async oraz await w pracy z Promise.all
    • Generatory asynchroniczne
    • Iteracja asynchroniczna uzupełnienie
    • Przykłady użycia funkcji fetch
    • Konwersja funkcji callback do funkcji opartych o typ Promise
    • Używanie słowa kluczowego await w głównym skrypcie aplikacji
    • Zagadnienia uzupełniające
    • Klasyfikacja sposobów dzielenia kodu aplikacji
    • Skrypty
    • Moduły CommonJS oraz AMD
    • Moduły ECMAScript
    • Named exports oraz named imports
    • Importowanie z wykorzystaniem przestrzeni nazw
    • Różne sposoby wykorzystania mechanizmu default exports
    • Default imports
    • Moduły zewnętrzne oraz narzędzie npm
    • Konwencje nazywania modułów
    • Module specifiers
    • Dynamiczne ładowanie modułów – operator import()
    • Omówienie właściwości import.meta
    • Polyfills
    • Zagadnienia uzupełniające
    • Interpretacja strony internetowej jako model DOM
    • Sposoby uzyskiwania dostępu do elementów modelu DOM
    • Przetwarzanie elementów modelu DOM
    • Zarządzanie kolekcją węzłów elementów typu NodeList
    • Poruszanie się po drzewie elementów modelu DOM
    • Problem węzłów znaku odstępu
    • Elementy równorzędne, potomne, nadrzędne
    • Zarządzanie węzłami tekstowymi elementów modelu DOM
    • Zarządzanie węzłami atrybutów elementów modelu DOM
    • Zarządzanie zawartością HTML elementów w modelu DOM
    • Dodawanie elementów do modelu DOM
    • Usuwanie elementów z modelu DOM
    • Zagadnienia uzupełniające
    • Klasyfikacja typów zdarzeń
    • Przepływ zdarzeń w DOM
    • Różne sposoby obsługi zdarzeń
    • Obserwatory zdarzeń
    • Przechwytywanie zdarzeń a różne wersje przeglądarek
    • Przekazywanie parametrów do metod obsługi zdarzeń
    • Przepływ zdarzeń
    • Zarządzanie obiektem zdarzenia
    • Delegacja zdarzeń
    • Zmiana zachowania domyślnego elementu DOM
    • Zatrzymanie procesu propagowania zdarzenia
    • Obsługa zdarzeń generowanych przez urządzenia wskazujące
    • Obsługa zdarzeń generowanych przez klawiaturę
    • Obsługa zdarzeń generowanych przez przeglądarkę
    • Obsługa zdarzeń generowanych przez formularz sieciowy
    • Obsługa zdarzeń generowanych przez zmiany w modelu DOM
    • Obsługa innych rodzajów zdarzeń
    • Zagadnienia uzupełniające
    • Walidacja formularza
    • Implementacja klienta REST API
    • Local storage oraz session storage
    • Przykłady innych bibliotek zewnętrznych
    • Zagadnienia uzupełniające
    • Różnica pomiędzy TypeScript oraz JavaScript
    • Konfiguracja narzędzi potrzebnych do kompilacji kodu TypeScript
    • Praca z kompilatorem TypeScript
    • Omówienie zawartości pliku konfiguracyjnego tsconfig.json
    • Podstawowe typy danych
    • Deklarowanie zmiennych oraz obiektów
    • Słowa kluczowe var, let oraz const
    • Zakres zmiennych oraz obiektów
    • Wyrażenia i operatory
    • Instrukcje warunkowe i pętle
    • Destrukturyzacja
    • Operator spread
    • Funkcje
    • Parametry opcjonalne
    • Parametry domyślne
    • Rest parameters
    • Funkcje strzałkowe
    • Słowo kluczowe this w pracy z funkcjami
    • Typy danych zwracane przez funkcje
    • Interfejsy
    • Typy funkcyjne
    • Typy indeksowalne
    • Rozszerzanie interfejsów przez inne interfejsy oraz klasy
    • Typy hybrydowe
    • Klasa oraz jej składniki
    • Blok statyczny w klasie
    • Enkapsulacja
    • Dziedziczenie
    • Przesłanianie metod
    • Słowo kluczowe override
    • Klasy abstrakcyjne
    • Constructor functions
    • Programowanie oparte o typy generyczne
    • Interfejsy generyczne
    • Generyczne typy funkcyjne
    • Klasy generyczne
    • Konkretyzacja typów generycznych
    • Ograniczenia konkretyzacji typów generycznych
    • Typ enum: numeric enum, string enum, heterogeneous enums
    • Const enum
    • Typy intersekcyjne
    • Unie
    • Predykaty typów
    • Operator typeof oraz instanceof
    • Aliasy
    • String literal type
    • Numeric literal type
    • Mapped type
    • Typy warunkowe
    • Typ Symbol
    • Iteratory
    • Generatory
    • Modułowość – eksportowanie
    • Modułowość – importowanie
    • Modułowość – default export
    • Modułowość – opcjonalne ładowanie modułów
    • Przestrzenie nazw
    • Wprowadzenie do dekoratorów
    • Przegląd różnych rodzajów dekoratorów
    • Implementacja własnych dekoratorów
    • Praktyczne przykłady wykorzystanie dekoratorów
    • Mixins
    • Przegląd innych typów wbudowanych
    • Przegląd nowości wprowadzonych w kolejnych wersjach TypeScript
    • Przygotowanie narzędzia Webpack do pracy z TypeScript
    • Zagadnienia uzupełniające
    • Omówienie struktury i zasady działania biblioteki React
    • Omówienie zasady działania aplikacji SPA
    • Przegląd wersji biblioteki React
    • Omówienie zasady działania aplikacji SPA
    • Przygotowanie aplikacji do pracy z biblioteką React
    • Omówienie składni JSX
    • Tworzenie pierwszego komponentu
    • Konfiguracja aplikacji React do pracy z TypeScript
    • Konteneryzacja aplikacji React do pracy w trybie developerskim oraz w trybie produkcyjnym
    • Zagadnienia uzupełniające
    • Tworzenie komponentu jako klasa
    • Tworzenie komponentu jako funkcja
    • Dynamiczne parametry komponentu – props
    • Stan komponentu
    • Modyfikacja stanu za pomocą metody setState
    • Wyjaśnienie problemu wskazania this w komponencie
    • Zagnieżdżanie komponentów
    • Higher Order Component
    • Zarządzanie elementami zagnieżdżonymi – React.Children
    • Identyfikacja zagnieżdżonych komponentów
    • Omówienie cyklów życia komponentu
    • Metody cyklu życia komponentu w zarządzaniu stanem komponentu
    • Tworzenie komponentu na podstawie tablicy danych
    • Komponenty prezentacyjne oraz komponenty logiki
    • Zagadnienia uzupełniające
    • Komponenty kontrolowane
    • Komponenty niekontrolowane
    • Dynamicznie generowane pól formularza
    • Praca ze zdarzeniami formularza
    • Wykorzystanie stanu komponentu do pracy z formularzem
    • Walidacja elementów formularza
    • Osadzanie informacji o błędach walidacji w formularzu
    • Obsługa plików z wykorzystaniem chmury
    • Przygotowanie danych formularza do pracy z backendem
    • Komunikacja HTTP ze zdalnym API
    • Zagadnienia uzupełniające
    • Klasyfikacja sposobów zarządzania stanem aplikacji
    • Struktura i zasada działania architektury Flux
    • Redux jako implementacja architektury Flux
    • Konfiguracja aplikacji do pracy z Redux
    • Store
    • Akcje
    • Reducery
    • Selektory
    • Podłączenie mechanizmów Redux do aplikacji React
    • Zarządzanie wywoływaniem akcji za pomocą Redux Thunk
    • Komunikacja HTTP z API za pomocą Redux Thunk
    • Implementacja Higher Order Reducer
    • Implementacja Higher Order Action Creator
    • Zarządzanie stanem aplikacji z wykorzystaniem Context API
    • Wprowadzenie do mechanizmu React Hooks
    • Konfiguracja stanu dla komponentów funkcyjnych
    • Funkcja useState
    • Funkcja useEffect
    • Funkcja useRef
    • Funkcja useReducer
    • Funkcja useCallback
    • Funkcja useMemo
    • Funkcja useContext
    • Dobre praktyki wykorzystania mechanizmu React Hooks
    • Implementacja własnych hooks
    • Implementacja formularza z wykorzystaniem React Hooks
    • Dynamiczna wersja formularza z wykorzystaniem React Hooks
    • Komunikacja HTTP z API za pomocą React Hooks
    • Biblioteka react-use
    • Biblioteka react-hook-form
    • Biblioteka react-fetch-hook
    • Biblioteka react-use-form-state
    • Biblioteka Formik
    • Biblioteka Hook Router
    • Biblioteka use-http
    • Rozpoznawanie mowy z wykorzystaniem biblioteki react-speech-recognition
    • Prezentacja innych bibliotek do pracy z React Hooks
    • Zagadnienia uzupełniające
    • Konfiguracja aplikacji do pracy z React Router
    • Podejście deklaratywne budowania routingu
    • Nawigacja pomiędzy komponentami w aplikacji React
    • Odczytywanie parametrów z URL
    • Routing zagnieżdżony
    • Implementowanie przekierowań w kodzie aplikacji React
    • Implementacja routingu dla błędu http 404
    • Wykorzystanie React Hooks do implementacji routingu (useParams, useLocation, useHistory, useRouteMatch)
    • Zagadnienia uzupełniające
    • Omówienie mechanizmu autentykacji oraz autoryzacji
    • Omówienie standardu JWT
    • Sposoby przechowywania tokena po stronie klienta
    • Rejestracja użytkowników
    • Implementacja mechanizmu logowania
    • Zarządzanie tokenami
    • Implementacja mechanizmu wylogowania
    • Konfiguracja routingu pod kątem bezpieczeństwa aplikacji
    • Dostosowanie aplikacji do pracy z użytkownikami o różnych uprawnieniach
    • Zagadnienia uzupełniające
    • Omówienie zagadnień związanych z testowaniem aplikacji
    • Omówienie właściwości frameworka Jest
    • Omówienie właściwości biblioteki Enzyme
    • Konfiguracja aplikacji React do przeprowadzania testów
    • Przedstawienie różnych metod testowania komponentów
    • Testowanie właściwości oraz stanu komponentów
    • Testowanie stanu reprezentowanego przez framework Redux
    • Testowanie mechanizmów implementowanych w ramach Redux Thunk
    • Testowanie komunikacji asynchronicznej (fetch, axios)
    • Testowanie mechanizmów implementowanych w ramach hooks
    • Testowanie kontekstu aplikacji
    • Zagadnienia uzupełniające
    • Lazy loading komponentów
    • Debuggowanie aplikacji opartej o bibliotekę React
    • Timery
    • Wykorzystanie biblioteki RxJS w aplikacjach React
    • React.memo
    • React Fragment
    • Portale
    • React Interceptors
    • React-Async
    • Zagadnienia uzupełniając
    • Omówienie struktury i zasady działania frameworka Angular
    • Przegląd wersji frameworka Angular
    • Omówienie zasady działania aplikacji SPA
    • Konfiguracja aplikacji Angular z wykorzystaniem Angular CLI
    • Omówienie struktury projektu
    • Dodawanie do aplikacji Angular bibliotek zewnętrznych
    • Konteneryzacja aplikacji React do pracy w trybie developerskim oraz w trybie produkcyjnym
    • Zagadnienia uzupełniające
    • Sposoby dodawania nowego komponentu do aplikacji Angular
    • Omówienie struktury komponentu
    • Komponenty zagnieżdżone
    • Modyfikowanie stylów komponentu
    • Osadzanie komponentów na stronie lub w innych komponentach
    • Cykle życia komponentów
    • Enkapsulacja widoków
    • Referencje lokalne
    • Dekoratory ViewChild oraz ContentChild
    • Omówienie klasyfikacji dyrektyw
    • Dyrektywy strukturalne ngIf, ngFor, ngSwitch
    • Dyrektywy ngStyle, ngClass
    • Implementacja własnych dyrektyw
    • Wykorzystanie dekoratorów HostListener oraz HostBinding do pracy z dyrektywami
    • Zagadnienia uzupełniające
    • Wyjaśnienie pojęcia databinding
    • Interpolacja
    • Zarządzanie właściwościami komponentu
    • Zarządzanie zdarzeniami komponentu
    • Two-way databinding
    • Implementacja komunikacji pomiędzy komponentami z wykorzystaniem mechanizmu databinding
    • Zagadnienia uzupełniające
    • Omówienie zasady działania routingu w aplikacji Angular
    • Implementacja tablicy routingu
    • Zarządzanie ścieżkami nawigacji
    • Dekorowanie aktywnych odnośników routingu
    • Implementacja nawigacji w aplikacji z wykorzystaniem routingu
    • Routing zagnieżdżony
    • Przekierowania
    • Zarządzanie przekazywanymi parametrami
    • Zastosowanie obserwatorów w routingu
    • Zasoby statyczne w routingu
    • Routing a bezpieczeństwo – implementacja mechanizmu Guards
    • Zagadnienia uzupełniające
    • Omówienie przeznaczenia i zasady działania obserwatorów
    • Sposoby tworzenia i uruchamiania obserwatorów wbudowanych
    • Przegląd operatorów i metod do zarządzania obserwatorami
    • Implementacja własnych obserwatorów
    • Przechwytywanie i przetwarzanie danych z obserwatorów
    • Implementacja mechanizmu przekształcania danych – pipes
    • Async pipes
    • Zagadnienia uzupełniające
    • Omówienie roli serwisu w aplikacji Angular
    • Implementacja serwisu
    • Dependency injection
    • Wstrzykiwanie serwisu do komponentu
    • Wstrzykiwanie serwisu do innego serwisu
    • Komunikacja między komponentami z wykorzystaniem serwisów
    • Zagadnienia uzupełniające
    • Klasyfikacja różnych sposobów implementacji formularza
    • Implementacja formularza z wykorzystaniem modelu Template Driven
    • Implementacja formularza z wykorzystaniem modelu Reactive Form
    • Omówienie sposobów implementacji różnych pól formularza
    • Przesyłanie plików z wykorzystaniem formularza
    • Walidacja danych formularza – walidatory wbudowane oraz implementacja własnych walidatorów
    • Zarządzanie stanem formularza
    • Informowanie użytkownika o nieprawidłowym stanie formularza
    • Grupowanie komponentów formularza
    • Inicjalizowanie oraz resetowanie pól formularza
    • Zarządzanie wartościami domyślnymi formularza
    • Formularz a mechanizm databinding
    • Zagadnienia uzupełniające
    • Omówienie założeń komunikacji HTTP
    • Analiza formatu danych JSON
    • Konfiguracja i praca z HttpClient
    • Implementacja mechanizmu obsługującego żądania HTTP
    • Zarządzanie nagłówkami żądania HTTP
    • Zarządzanie kodami odpowiedzi HTTP
    • Przechwytywanie i zarządzanie danymi
    • Praca z mechanizmem przechwytywaczy
    • Obsługa błędów komunikacji HTTP
    • Implementacja komunikacji HTTP w standardzie REST z aplikacją zewnętrzną
    • Zagadnienia uzupełniające
    • Omówienie mechanizmu autentykacji oraz autoryzacji
    • Omówienie standardu JWT
    • Sposoby przechowywania tokena po stronie klienta
    • Rejestracja użytkowników
    • Implementacja mechanizmu logowania
    • Zarządzanie tokenami
    • Implementacja mechanizmu wylogowania
    • Konfiguracja routingu pod kątem bezpieczeństwa aplikacji
    • Dostosowanie aplikacji do pracy z użytkownikami o różnych uprawnieniach
    • Zagadnienia uzupełniające
    • Omówienie architektury modułów
    • Prezentacja korzyści płynących z podziału programu na moduły
    • Szczegółowa analiza składników dekoratora NgModule
    • Implementacja własnych modułów – feature modules
    • Implementacja mechanizmów routingu w modułach
    • Implementacja modułów współdzielonych – shared modules
    • Leniwe ładowanie modułów
    • Interfejs CanLoad
    • Implementacja core module
    • Zagadnienia uzupełniające
    • Klasyfikacja sposobów zarządzania stanem aplikacji
    • Typy Subject, BehaviorSubject oraz ReplaySubject
    • Omówienie architektury NgRx
    • Wskazanie różnic pomiędzy NgRx oraz React Redux
    • Konfiguracja aplikacji do pracy z NgRx
    • Akcje
    • Reducery
    • Konfiguracja Store
    • Wykorzystanie NgRx w pracy z komponentami
    • Wykorzystanie NgRx do pracy z warstwą security
    • Implementacja side effects przy pracy z akcjami NgRx
    • Zagadnienia uzupełniające
    • Wprowadzenie do biblioteki ngx-bootstrap
    • Konfiguracja aplikacji do pracy z ngx-bootstrap
    • Przegląd komponentów biblioteki ngx-bootstrap
    • Osadzanie komponentów ngx-bootstrap w aplikacji webowej
    • Zagadnienia uzupełniające
    • Wprowadzenie do biblioteki Angular Material
    • Konfiguracja aplikacji do pracy z Angular Material
    • Ustawianie motywu dla aplikacji pracującej z Angular Material
    • Przegląd różnych komponentów biblioteki Angular Material
    • Konfiguracja różnych komponentów Angular Material w aplikacji frontend
    • Zagadnienia uzupełniające
    • Omówienie zagadnień związanych z testowaniem aplikacji
    • Omówienie właściwości frameworka Jasmine
    • Przygotowanie przykładowych danych dla warstwy testującej
    • Różne metody testowania komponentów
    • Testowanie serwisów
    • Testowanie komunikacji asynchronicznej
    • Wykorzystanie frameworka Cypress do testowania E2E
    • Zagadnienia uzupełniające
    • Omówienie struktury i zasady działania frameworka Vue
    • Przegląd wersji frameworka Vue
    • Omówienie zasady działania aplikacji SPA
    • Omówienie koncepcji Single-File Components (SFC)
    • Różnica pomiędzy Options API oraz Composition API
    • Sposoby tworzenia projektu Vue
    • Omówienie struktury projektu
    • Zarządzanie instancją aplikacji (createApp)
    • Konfigurowanie globalnych właściwości aplikacji
    • Implementowanie własnych pluginów
    • Rejestrowanie pluginów w aplikacji
    • Wprowadzenie do dyrektyw
    • Narzędzie Vite
    • Przegląd komend Vue CLI
    • Rozszerzenie Devtools
    • Przygotowanie wersji produkcyjnej aplikacji
    • Konfiguracja projektu do pracy z TypeScript
    • Zagadnienia uzupełniające
    • Omówienie zasad reaktywności
    • Options API
      • Sekcja <script>
      • Definiowanie stanu reaktywnego
      • Zarządzanie szablonem HTML
      • Data binding
      • Definiowanie metod do zarządzania stanem
      • Praktyczny przykład wykorzystania nextTick
      • Metody stateful
      • Computed properties
      • Definiowanie getterów oraz setterów dla computed properties
      • Zarządzanie klasami i stylami szablonu HTML
      • Renderowanie warunkowe (v-if, v-else, v-else-if, v-show)
      • Renderowanie kontenerów danych (v-for)
      • Renderowanie w oparciu o
      • Przechwytywanie i zarządzanie zdarzeniami
      • Modyfikatory zdarzeń
      • Obsługa formularzy
      • Modyfikatory do pracy z formularzami
      • Watcher
      • Funkcja $watch
      • Zarządzanie referencjami z wykorzystaniem atrybutu ref

    • Composition API
      • Sekcja <script setup>
      • Funkcja reactive
      • Funkcja ref
      • Porównanie scenariuszy użycia funkcji reactive oraz ref
      • Zarządzanie szablonem HTML
      • Data binding
      • Funkcja computed
      • Definiowanie getterów oraz setterów dla computed properties
      • Zarządzanie klasami i stylami szablonu HTML
      • Renderowanie warunkowe (v-if, v-else, v-else-if, v-show)
      • Renderowanie kontenerów danych (v-for)
      • Renderowanie w oparciu o
      • Przechwytywanie i zarządzanie zdarzeniami
      • Modyfikatory zdarzeń
      • Obsługa formularzy
      • Modyfikatory do pracy z formularzami
      • Funkcja watch
      • Funkcja watchEffect
      • Zarządzanie referencjami z wykorzystaniem atrybutu ref
    • Zagadnienia uzupełniające
    • Omówienie potrzeby stosowania komponentów
    • Options API
      • Definiowanie komponentu
      • Omówienie sposobów rejestracji komponentu
      • Używanie komponentu
      • Cykl życia komponentu
      • Metody cyklu życia komponentu
      • Definiowanie props
      • Props statyczne i dynamiczne
      • Walidacja props
      • Obsługa zdarzeń
      • Dyrektywa v-on
      • Zarządzanie argumentami funkcji obsługi zdarzenia
      • Funkcja $emit
      • Walidacja argumentów zdarzenia
      • Dyrektywa v-model
      • Argumenty dyrektywy v-model
      • Modyfikatory dyrektywy v-model
      • Zasady dziedziczenia atrybutów przez komponenty zagnieżdżone
      • Omówienie zasady działania slotów
      • Named slots
      • Renderless Components
      • Komponenty dynamiczne (<component>)
      • Omówienie problemu prop drilling
      • Zarządzanie opcjami provide oraz inject
      • Konfiguracja opcji provide oraz inject z wykorzystaniem Symbol
      • Komponenty asynchroniczne
    • Composition API
      • Definiowanie komponentu
      • Omówienie sposobów rejestracji komponentu
      • Używanie komponentu
      • Cykl życia komponentu
      • Metody cyklu życia komponentu
      • Definiowanie props – funkcja defineProps
      • Props statyczne i dynamiczne
      • Walidacja props
      • Obsługa zdarzeń
      • Dyrektywa v-on
      • Zarządzanie argumentami funkcji obsługi zdarzenia 
      • Funkcja defineEmits
      • Walidacja argumentów zdarzenia
      • Dyrektywa v-model
      • Argumenty dyrektywy v-model
      • Modyfikatory dyrektywy v-model
      • Zasady dziedziczenia atrybutów przez komponenty zagnieżdzone
      • Omówienie zasady działania slotów
      • Named slots
      • Renderless Components
      • Komponenty dynamiczne (<component>)
      • Omówienie problemu prop drilling
      • Funkcje provide oraz inject
      • Konfiguracja funkcji provide oraz inject z wykorzystaniem Symbol
      • Komponenty asynchroniczne
    • Komponent Transition
    • Komponent TransitionGroup
    • Komponent KeepAlive
    • Komponent Teleport
    • Komponent Suspense
    • Funkcje composable
    • Implementacja dyrektyw użytkownika
    • Implementacja asynchronicznej komunikacji http
    • Pluginy
    • Zagadnienia uzupełniające
    • Omówienie koncepcji routingu
    • Komponent router-link
    • Komponent router-view
    • Implementacja przykładowej struktury kodu realizującej routing
    • Zarządzanie parametrami w routingu
    • Reagowanie na zmiany wartości parametrów w ramach tego samego routea
    • Obsługa błędu 404
    • Zastosowanie wyrażeń regularnych w routingu
    • Konfiguracja dodatkowych opcji routingu (sensitive, strict)
    • Parametry powtarzalne oraz parametry opcjonalne
    • Routing zagnieżdżony
    • Nawigacja programowa
    • Zarządzanie historią nawigowania
    • Praca z różnymi trybami zarządzania historią
    • Named routes
    • Named views
    • Przekierowania
    • Aliasy
    • Przekazywanie parametrów routingu jako props do powiązanego komponentu
    • Navigation guards
    • Atrybut meta
    • Pozyskiwanie informacji z serwera na różnych etapach cyklu życia routea
    • Funkcja useLink
    • Funkcja scrollBehavior
    • Lazy loading w routingu
    • Routing dynamiczny
    • Zagadnienia uzupełniające
    • Omówienie koncepcji stanu aplikacji
    • Wprowadzenie do biblioteki Pinia
    • Definiowanie store
    • Option Store vs Setup Store
    • Definiowanie stanu aplikacji
    • Pozyskiwanie informacji ze stanu
    • Resetowanie stanu
    • Dokonywanie zmian w zawartości stanu
    • Subskrybowanie zmian w stanie
    • Definiowanie gettera
    • Przekazywanie argumentów do gettera
    • Odwoływanie się do getterów innych elementów stanu
    • Definiowanie akcji
    • Subskrybowanie akcji
    • Pluginy
    • Zagadnienia uzupełniające
    • Klasyfikacja testów
    • Przygotowanie aplikacji do pracy z frameworkiem Vitest
    • Praca z Vitest CLI
    • Filtrowanie testów
    • Pokrycie testami
    • Implementowanie różnych rodzajów testów z wykorzystaniem Vitest
    • Snapshot test
    • Mockowanie
    • Praca z Vitest UI
    • Testowanie in-source
    • Przekazywanie dodatkowych danych w ramach konteksu testu
    • Zarządzanie środowiskiem uruchomieniowym testów
    • Przykłady wykorzystania matcherów
    • Zagadnienia uzupełniające
    • Architektura i zastosowanie Node.js
    • Instalacja potrzebnych komponentów
    • Mechanizm Event Driven Code Execution
    • Uruchamianie podstawowych skryptów – REPL
    • Przygotowanie aplikacji Node.js do pracy z JavaScript ES6+
    • Przygotowanie aplikacji Node.js do pracy z TypeScript
    • Omówienie systemu modułowości Node.js
    • Omówienie wzorca MVC na potrzeby aplikacji webowej
    • Cykl życia serwera Node.js – moduł http
    • Implementacja serwera Node.js – moduł http
    • Implementacja routingu dla serwera Node – moduł http
    • Instalacja frameworka Express
    • Omówienie zasady działania middleware
    • Zarządzanie żądaniami i odpowiedziami http
    • Parametry żądań http
    • Nagłówki żądań http
    • Przetwarzanie ciała żądania
    • Implementacja routingu
    • Obsługa zasobów statycznych
    • Konfiguracja loggerów
    • Walidacja danych
    • Obsługa błędów
    • Zarządzanie sesją oraz cookies
    • Konteneryzacja aplikacji webowej (patrz punkt 42)
    • Osadzenie aplikacji webowej w chmurze (patrz punkt 43)
    • Zagadnienia uzupełniające
    • Prezentacja bibliotek do pracy relacyjnymi bazami danych
    • Konfiguracja połączenia z bazą danych – mysql2
    • Zarządzanie tabelą w bazie danych – mysql2
    • Implementacja relacji pomiędzy tabelami – mysql2
    • Zarządzanie danymi w bazie danych – mysql2
    • Przygotowanie warstwy bazodanowej – mysql2
    • Charakterystyka mechanizmu ORM
    • Konfiguracja połączenia z bazą danych – Sequelize
    • Zarządzanie modelem tabeli w bazie danych – Sequelize
    • Migracje – Sequelize
    • Walidacja modelu tabeli – Sequelize
    • Definiowanie relacji bazodanowych – Sequelize
    • Zarządzanie danymi w bazie danych – Sequelize
    • Zarządzanie transakcyjnością – Sequelize
    • Przygotowanie warstwy bazodanowej – Sequelize
    • Przygotowanie warstwy serwisowej do pracy z warstwą bazodanową
    • Konfiguracja połączenia z bazą danych – TypeORM
    • Zarządzanie modelem tabeli w bazie danych – TypeORM
    • Migracje – TypeORM
    • Walidacja modelu tabeli – TypeORM
    • Definiowanie relacji bazodanowych – TypeORM
    • Zarządzanie danymi w bazie danych – TypeORM
    • Zarządzanie transakcyjnością – TypeORM
    • Praca z Query Builder – TypeORM
    • Tworzenie własnych repozytoriów z wykorzystaniem TypeORM
    • Przygotowanie warstwy bazodanowej – TypeORM
    • Zagadnienia uzupełniające
    • Omówienie architektury bazy danych NoSql
    • Prezentacja bibliotek do pracy z bazami danych NoSql
    • Konfiguracja połączenia z bazą danych NoSql – mongodb
    • Przygotowanie modelu do pracy z bazą danych NoSql – mongodb
    • Implementacja relacji w bazie danych NoSql – mongodb
    • Zarządzanie danymi w bazie danych NoSql – mongodb
    • Przygotowanie warstwy bazodanowej – mongodb
    • Przygotowanie aplikacji do pracy z mongoose
    • Konfiguracja połączenia z bazą danych NoSql – mongoose
    • Przygotowanie modelu do pracy z bazą danych NoSql – mongoose
    • Implementacja relacji w bazie danych NoSql – mongoose
    • Zarządzanie danymi w bazie danych NoSql – mongoose
    • Implementacja kompletnej warstwy do komunikacji z bazą danych
    • Przygotowanie warstwy bazodanowej – mongoose
    • Przygotowanie warstwy serwisowej do pracy z warstwą bazodanową
    • Zagadnienia uzupełniające
    • Omówienie standardu REST
    • Konfiguracja aplikacji Node.js do pracy z REST
    • Integracja aplikacji REST z warstwą bazodanową
    • Przechwytywanie parametrów oraz ciała żądania HTTP
    • Walidacja danych przekazywanych w ciele żądania HTTP
    • Implementacja routingu w aplikacji REST
    • Implementacja kompletnej aplikacji REST API
    • Rejestracja użytkowników w aplikacji REST Node.js
    • Osadzenie warstwy security w aplikacji REST Node.js
    • Implementacja serwisu do wysyłania wiadomości email
    • Zarządzanie zasobami statycznymi w chmurze
    • Implementowanie mechanizmu CORS
    • Testowanie aplikacji REST Node.js
    • Zagadnienia uzupełniające
    • Omówienie standardu GraphQL
    • Prezentacja różnic pomiędzy standardami REST oraz GraphQL
    • Konfiguracja aplikacji Node.js do pracy z GraphQL
    • Integracja aplikacji GraphQL z warstwą bazodanową
    • Przygotowanie schematu danych dla aplikacji GraphQL
    • Zarządzanie queries w aplikacji GraphQL
    • Zarządzanie mutations w aplikacji GraphQL
    • Wykorzystanie dodatkowych narzędzi GraphQL – np. variables
    • Implementacja kompletnej aplikacji GraphQL
    • Rejestracja użytkowników w aplikacji GraphQL
    • Osadzenie warstwy security w aplikacji GraphQL
    • Implementacja serwisu do wysyłania wiadomości email
    • Zarządzanie zasobami statycznymi w chmurze
    • Implementacja mechanizmu CORS
    • Testowanie aplikacji REST Node.js
    • Zagadnienia uzupełniające
    • Konfiguracja warstwy testującej dla aplikacji webowej
    • Instalacja frameworka Mocha do zarządzania uruchamianiem testów
    • Instalacja frameworka Chai do zarządzania asercjami
    • Instalacja frameworka Sinon do wykorzystywania mocków
    • Przygotowanie struktury projektów do pracy z warstwą testującą
    • Przegląd i wykorzystanie różnych rodzajów asercji
    • Grupowanie testów
    • Hooks (akcje wykonywane pomiędzy testami)
    • Mockowanie obiektów
    • Testy jednostkowe oraz intergacyjne
    • Testowanie metod serwisowych
    • Testowanie kontrolerów
    • Testowanie mechanizmów asynchronicznych
    • Przygotowanie warstwy bazodanowej na potrzeby testów
    • Testowanie REST API z wykorzystaniem narzędzi zewnętrznych
    • Testowanie warstwy security
    • Zagadnienia uzupełniające
    • Omówienie architektury platformy Docker
    • Zasada działania obrazu oraz kontenera
    • Różnica pomiędzy kontenerem Docker oraz maszyną wirtualną
    • Instalacja platformy Docker
    • Praca z Docker CLI
    • Tworzenie i zarządzanie obrazami platformy Docker
    • Image Layers
    • Wprowadzenie do pracy z Docker Hub
    • Osadzenie przygotowanego obrazu w repozytorium Docker Hub
    • Tworzenie i zarządzanie kontenerami w platformie Docker
    • Omówienie cyklu życia kontenera
    • Kopiowanie plików z maszyny lokalnej do kontenera
    • Kopiowanie plików z kontenera do maszyny lokalnej
    • Klasyfikacja rodzajów danych przechowywanych w kontenerach
    • Tworzenie i zarządzanie volumes w platformie Docker
    • Różnica pomiędzy anonymous volumes oraz named volumes
    • Tworzenie i zarządzanie bind mounts w platformie Docker
    • Omówienie różnic pomiędzy volumes oraz bind mounts
    • Tworzenie volumes tylko do odczytu
    • Instalacja i uruchamianie przykładowych narzędzi z wykorzystaniem platformy Docker
    • Omówienie struktury pliku konfiguracyjnego Dockerfile
    • Praca z argumentami oraz zmiennymi środowiskowymi
    • Konteneryzacja aplikacji webowej z wykorzystaniem Docker
    • Komunikacja kontenera z zewnętrznym REST API
    • Komunikacja kontenera z narzędziami osadzonymi w localhost
    • Komunikacja container to container z użyciem networks w platformie Docker
    • Przegląd sterowników do konfiguracji zachowania networks
    • Omówienie zasady działania narzędzia Docker Compose
    • Instalacja narzędzia Docker Compose
    • Struktura pliku konfiguracyjnego narzędzia Docker Compose
    • Przygotowanie kontenera bazy danych
    • Konfiguracja kontenerów do pracy z wieloma bazami danych
    • Konteneryzacja aplikacji webowej
    • Przykład tworzenia utility containers
    • Zagadnienia uzupełniając
    • Omówienie architektury Amazon Web Services
    • Omówienie pojęcia regionu
    • Omówienie pojęcia availability zone (AZ)
    • Praca z Identity and Access Management (IAM)
    • Wprowadzenie pojęć users, roles, groups oraz policies
    • Konfiguracja konta użytkownika
    • Zarządzanie budżetem
    • Omówienie Amazon Machine Images (AMI)
    • Wprowadzenie do serwisu Elastic Compute Cloud (EC2)
    • Przygotowanie i uruchomienie instancji EC2
    • Przegląd parametrów instancji EC2
    • Konfiguracja Security Groups do ustawienia możliwości komunikacyjnych instancji EC2
    • Komunikacja z instancją EC2 z wykorzystaniem SSH
    • Komunikacja z instancją EC2 z wykorzystaniem AWS Console
    • Konfiguracja Elastic IP
    • Konfiguracja User Data do uruchamia operacji początkowych dla instancji EC2
    • Przygotowanie instancji EC2 do pracy z kontenerami Docker
    • Osadzenie skonteneryzowanej aplikacji webowej w instancji EC2
    • Klasyfikacja sposobów uruchamiania instancji EC2
    • EC2 Elastic Network Instances (ENI)
    • Omówienie pojęć scalability oraz high availability
    • Skalowanie wertykalne oraz horyzontalne
    • Omówienie pojęcia load balancing
    • Klasyfikacja load balancerów
    • Uruchomienie serwisu Elastic Load Balancer (ELB)
    • Load Balancer Stickiness
    • Cross-Zone Load Balancing
    • Omówienie pojęć związanych z auto scaling
    • Konfiguracja Auto Scaling Group (ASG)
    • Sposoby skalowania – Target Tracking Scaling
    • Sposoby skalowania – Simple / Step Scaling
    • Konfiguracja Elastic Block Store (EBS)
    • Klasyfikacja EBS Volumes
    • Konfiguracja EC2 Instance Store
    • Konfiguracja Elastic File System (EFS)
    • Porównanie EBS oraz EFS
    • Wprowadzenie do serwisu Relational Database Service (RDS)
    • Zalety i wady stosowania RDS
    • Omówienie mechanizmu RDS Read Replicas
    • Omówienie mechanizmu Single AZ oraz Multi AZ
    • Konfiguracja usługi RDS
    • RDS Encryption
    • Wady i zalety pracy z bazą danych Amazon Aurora
    • Konfiguracja RDS do pracy z Amazon Aurora
    • Omówienie usługi Amazon ElastiCache
    • Wprowadzenie do serwisu Elastic Beanstalk (EB)
    • Przygotowanie środowiska Elastic Beanstalk Environment
    • Klasyfikacja sposobów osadzania aplikacji w EB Environment
    • Praca z Elastic Beanstalk Extensions
    • Klonowanie środowiska Elastic Beanstalk
    • Docker w pracy z Elastic Beanstalk
    • Osadzanie aplikacji webowej w środowisku EB
    • Osadzanie aplikacji webowej w środowisku EB z komunikacją bazodanową z wykorzystaniem RDS
    • Load balancing oraz autoscaling aplikacji osadzonej w środowisku EB
    • Przygotowanie API Gateway dla środowiska EB
    • Wprowadzenie do serwisu Elastic Container Service (ECS)
    • Omówienie pojęcia orkiestryzacji kontenerów
    • Konfiguracja ECS
    • Wprowadzenie do serwisu AWS Fargate
    • Omówienie jednostki uruchomieniowej Task
    • Konfiguracja Task Definition
    • Omówienie i konfiguracja Service
    • Przeznaczenie elementu Cluster
    • Konfiguracja Cluster
    • Osadzenie aplikacji webowej jako service w klastrze AWS Fargate
    • Komunikacja kontenera AWS Fargate z bazą danych osadzoną w RDS
    • Zarządzanie parametrami aplikacji poprzez Systems Manager
    • Komunikacja kontenerów osadzonych w ramach serwisów AWS Fargate (wdrażanie architektury mikroserwisowej)
    • Konfiguracja distributed tracing dla kontenerów AWS Fargate z wykorzystaniem usługi AWS X-Ray
    • Konfiguracja load balancera do pracy z kontenerami AWS Fargate
    • Konfiguracja auto scaling do pracy z kontenerami AWS Fargate
    • Wprowadzenie do serwisu App Mesh
    • Charakterystyka pojęcia proxy
    • Envoy Proxy jako przykład proxy używanego w App Mesh
    • Tworzenie namespace w ramach usługi App Mesh
    • Tworzenie service dla skonfigurowanego namespace
    • Konfiguracja URI utworzonych w usłudze Route53 do pracy ze skonfigurowanymi serwisami
    • Konfiguracja Virtual Node
    • Konfiguracja Virtual Service dla utworzonych serwisów
    • Konfiguracja AWS Fargate do wdrożenia konfiguracji przygotowanej w ramach AWS Mesh
    • Wprowadzenie do serwisu AWS CodePipeline
    • Wyjaśnienie pojęcia continuous integration (CI)
    • Wyjaśnienie pojęcia continuous delivery (CD)
    • Przygotowanie aplikacji webowej do pracy z CI/CD
    • Przygotowanie repozytorium GitHub aplikacji webowej do pracy z AWS CodePipeline
    • Przygotowanie serwisu ECS do pracy z AWS CodePipeline
    • Omówienie kolejnych etapów budowania i uruchamiania projektu w ramach usługi AWS CodePipeline
    • Uruchomienie serwisu z aplikacją webową w ramach CI/CD
    • Testowanie mechanizmu CI/CD w ramach AWS CodePipeline
    • Sprawdzanie logów aplikacji z wykorzystaniem usługi CloudWatch
    • Serwowanie zasobów statycznych z wykorzystaniem usługi AWS S3
    • Zagadnienia uzupełniające
    • Omówienie architektury GIT
    • Konfiguracja i personalizacja ustawień GIT
    • Klasyfikacja repozytoriów
    • Tworzenie repozytorium lokalnego
    • Zarządzanie plikami w ramach obszarów repozytorium
    • Rozgałęzianie i scalanie
    • Przegląd wszystkich operacji GIT
    • Aplikacje i wtyczki do pracy z GIT
    • Praca ze zdalnym repozytorium
    • Dobre praktyki tworzenia repozytoriów GIT
    • GitHub Pages
    • Zagadnienia uzupełniające

    Newsletter