Menu Zamknij

Kurs Web Developer

Cena szkolenia

Cena szkolenia wynosi 120 zł za 60 min. Ilość godzin szkolenia jest zależna od postępów w nauce uczestnika kursu oraz ilości czasu, którą będzie potrzebował do realizacji zadań i projektów zleconych w ramach szkolenia.

Opis kursu

Szkolenie przygotowuje do pracy na stanowisku Web Developer lub podobnym. Po zakończeniu szkolenia uczestnik kursu będzie w stanie tworzyć oraz rozwijać aplikacje webowe w oparciu o języki programowania JavaScript oraz TypeScript. W programach wykorzysta środowisko uruchomieniowe Node.js, framework Angular oraz bibliotekę React. Aplikacje będą gotowe do komunikacji HTTP w standardach REST oraz GraphQL. Wykorzystają mechanizmy bezpieczeństwa z szyfrowaniem w oparciu o standard JWT, zostaną skonteneryzowane z wykorzystaniem platformy Docker oraz osadzone w chmurze. Wyglądem komponentów zarządzać będzie framework Bootstrap. Podczas szkolenia uczestnik kursu pozna dodatkowo wiele innych narzędzi i bibliotek wspomagających pracę z opisanymi wyżej technologiami. Uczestnik kursu wykorzysta języki i technologie w najnowszych wersjach. Kurs cały czas rozwijany jest pod

kątem najbardziej aktualnych rozwiązań wymaganych w branży IT.

W ramach szkolenia uczestnik kursu rozwiąże ogromną ilość zadań teoretycznych i praktycznych, które skutecznie przygotują go do rozmowy kwalifikacyjnej. Wiedza uczestnika kursu będzie systematycznie sprawdzana w trakcie próbnych rozmów kwalifikacyjnych, które odbywają się w języku polskim lub angielskim.

Po zakończeniu szkolenia uczestnik kursu będzie posiadał kilka dużych projektów, które potwierdzą jego praktyczne umiejętności posługiwania się narzędziami i językami programowania, które pojawiły się w kursie. Każdy kolejny etap projektu będzie indywidualnie sprawdzony i oceniony przez mentora. Zagwarantuje to zgodność projektu z przyjętymi założeniami oraz dobrymi praktykami programistycznymi, jak również wymusi systematyczną pracę nad projektami. Dodatkowo uczestnik kursu otrzyma zadania rozwijania lub modyfikowania istniejących już projektów oraz ich analizy pod kątem wyszukiwania błędów.

Szkolenie zawsze odbywać się będzie w formie spotkań indywidualnych, dzięki czemu tempo kursu zostanie dopasowane do konkretnych potrzeb uczestnika kursu.

Potrzebne aplikacje i narzędzia

Komputer / laptop z dowolnym systemem operacyjnym i zainstalowanym zestawem narzędzi do budowania aplikacji pojawiających się w trakcie szkolenia. Potrzebne oprogramowanie zostanie szczegółowo opisane oraz zainstalowane na pierwszym darmowym spotkaniu testowym lub w momencie, kiedy nastąpi konieczność jego wykorzystania w trakcie szkolenia.

Aplikacje potrzebne do nawiązania połączenia: Team Viewer oraz Skype. Na życzenie uczestnika kursu będzie możliwość używania innej aplikacji zdalnego pulpitu lub komunikatora głosowego.
Na pierwszym darmowym spotkaniu testowym oceniona zostanie jakość połączenia. Na tej podstawie przeprowadzona będzie konfiguracja, która pozwoli zapewnić najlepszą jakość dźwięku oraz obrazu podczas szkoleń.

Umiejętności potrzebne przed
rozpoczęciem kursu

Kurs przeznaczony jest dla osób o różnym stopniu zaawansowania. W szkoleniu uczestniczyć mogą osoby, które nie miały do tej pory nic wspólnego z programowaniem, jak również osoby, które już posiadają doświadczenie na podobnym stanowisku. Celem szkolenia jest przygotowanie do pracy programisty, jak również podnoszenie kwalifikacji osób już pracujących w branży IT.

Istnieje możliwość rozpoczęcia szkolenia od wybranego punktu w planie szkolenia. Kurs poprzedzony jest wtedy szczegółową rozmową kwalifikacyjną w języku polskim lub angielskim. Na podstawie rozmowy zostanie oceniony poziom uczestnika kursu z zakresu materiału przed wybranym punktem w planie szkolenia

Plan szkolenia

  • Omówienie architektury oraz instalacja silnika Node.js
  • 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 Babel
  • Dołą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
  • Zagadnienia uzupełniające
  • 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
  • Obiekty Array-like
  • Konwersje obiektów iterable oraz wartości Array-like do tablic
  • Tablice wielowymiarowe regularne i nieregularne
  • Spłaszczanie tablic – flat oraz flatMap
  • Kodowanie i przechowywanie napisów
  • Sposoby tworzenia napisów
  • Niemodyfikowalność napisów
  • Multi-line strings
  • 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
  • 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 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
  • 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 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
  • 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ń
  • 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
  • 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.js – moduł http
  • Instalacja frameworka Express.js
  • 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
  • Walidacja danych
  • Obsługa błędów
  • Zarządzanie sesją oraz cookies
  • 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
  • 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ą
  • 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
  • Dokeryzacja aplikacji Node.js
  • Umieszczanie aplikacji Node.js w chmurze
  • Konfiguracja loggerów
  • Inne biblioteki rozszerzające możliwości aplikacji Node.js
  • Zagadnienia uzupełniające
  • Omówienie struktury i zasady działania biblioteki React
  • 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
  • Przygotowanie aplikacji do pracy z React oraz TypeScript
  • 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
  • Wprowadzenie stanu do komponentów funkcyjnych
  • Funkcja useState
  • Funkcja useEffect
  • Funkcja useRef
  • Funkcja useReducer
  • Funkcja useCallback
  • Funkcja useMemo
  • Dobre praktyki wykorzystania mechanizmu React Hooks
  • Implementacja własnych hooks
  • Komunikacja HTTP z API za pomocą 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
  • 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
  • Leniwe ładowanie komponentów
  • Debuggowanie aplikacji opartej o bibliotekę React
  • Zarządzanie warstwą security
  • Timery
  • Wykorzystanie biblioteki RxJS w aplikacjach React
  • React.memo
  • React Fragment
  • Portale
  • Zastosowanie zewnętrznych bibliotek do zarządzania formularzami
  • React Interceptors
  • React-Async
  • Zagadnienia uzupełniające
  • Różnica pomiędzy TypeScript oraz JavaScript
  • Konfiguracja narzędzi potrzebnych do kompilacji kodu TypeScript
  • 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
  • Enkapsulacja
  • Dziedziczenie
  • Przesłanianie metod
  • 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
  • Dekoratory
  • Mixins
  • Przegląd innych typów wbudowanych
  • Zagadnienia uzupełniające
  • 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
  • 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
  • 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
  • Omówienie zagadnień związanych z testowaniem aplikacji
  • Omówienie właściwości frameworka Jasmine
  • Różne metody testowania komponentów
  • Testowanie serwisów
  • Testowanie komunikacji asynchronicznej
  • Wykorzystanie frameworka Cypress do testowania E2E
  • Zagadnienia uzupełniające
  • Wprowadzenie do biblioteki Angular Material
  • Konfiguracja aplikacji do pracy z Angular Material
  • Przegląd komponentów biblioteki Angular Material
  • Osadzanie komponentów Angular Material w aplikacji webowej
  • Zagadnienia uzupełniające
  • Debuggowanie
  • Testowanie aplikacji opartej o framework Angular
  • Implementacja mechanizmu przekształcania danych – pipes
  • Async pipes
  • Umieszczanie aplikacji Angular w chmurze
  • Omówienie architektury platformy Docker
  • Instalacja platformy Docker
  • Przegląd poleceń platformy Docker
  • Tworzenie i zarządzanie obrazami platformy Docker
  • Tworzenie i zarządzanie kontenerami platformy Docker
  • Tworzenie i zarządzanie volumes platformy Docker
  • Tworzenie i zarządzanie networks platformy Docker
  • Przegląd instrukcji Docker CLI
  • Instalacja i uruchamianie przykładowych narzędzi z wykorzystaniem platformy Docker
  • Tworzenie i zarządzanie networks platformy Docker
  • Omówienie struktury pliku konfiguracyjnego Dockerfile
  • Konteneryzacja aplikacji webowej Node.js
  • 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 
  • Konteneryzacja aplikacji webowych Node.js z wykorzystaniem narzędzia Docker Compose
  • Konteneryzacja aplikacji webowych fullstack z wykorzystaniem Node.js i frameworków Angular oraz React
  • 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

Scroll Up