Menu Zamknij

Kurs JavaScript / TypeScript Fullstack

Cena kursu

  • Cena spotkania grupowego wynosi 90 zł netto za 60 minut (110,7 zł brutto za 60 minut).
  • Cena spotkania indywidualnego wynosi 140 zł netto za 60 minut (172,2 zł brutto za 60 minut).
  • Płacisz zawsze za 25 kolejnych spotkań grupowych.
  • Płacisz zawsze za jedno kolejne spotkanie indywidualne.
  • Pierwsze spotkanie grupowe gratis.
  • Istnieje możliwość wystawienia faktury VAT.

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.

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

Materiały video

Newsletter

Zapisz się na KURS i zyskaj - licencja JetBrains na 6 miesięcy za darmo!