Menu Zamknij

Kurs Web Developer

Cena szkolenia

Cena spotkania grupowego wynosi 100 zł netto za 60 min. Cena spotkania indywidualnego wynosi 120 zł netto za 60 min. Ilość godzin szkolenia zależy od Twoich postępów w nauce oraz ilości czasu, którą poświęcisz na realizację zadań i projektów zleconych w ramach szkolenia.

Opis kursu

Kurs przygotuje Cię do pracy na stanowisku programisty JavaScript, TypeScript oraz każdym innym, gdzie wymagana jest znajomość tych języków oraz frameworków, które poznasz w tym szkoleniu (m.in. React, Angular, Express i wiele innych). Po zakończeniu szkolenia będziesz w stanie tworzyć lub rozwijać nowoczesne aplikacje webowe fullstack.

Naukę zaczniesz od zrozumienia podstaw języków JavaScript, TypeScript i struktur programistycznych, które w nich występują. Nauczysz się zagadnień związanych z algorytmiką oraz zasad optymalizacji kodu i szybkości działania aplikacji. Następnie dowiesz się, jak działa narzędzie Webpack. Później poznasz ważne frameworki do tworzenia aplikacji frontendowych (React, Angular). Następnie skupisz się na przygotowaniu warstwy backendowej z wykorzystaniem frameworka Express. Wykorzystasz komunikację z bazami danych SQL, NoSQL oraz mechanizmy ORM. Przygotujesz warstwę security. Na koniec nauczysz się, jak konfigurować komunikację aplikacji backendowej z aplikacją fronetndową. To pozwoli Ci uzyskać kompleksowe rozwiązanie fullstack. Zbudujesz nowoczesne aplikacje webowe, które następnie skonteneryzujesz z wykorzystaniem platformy Docker i osadzisz w chmurze. Programy przetestujesz z wykorzystaniem bibliotek dedykowanych do testów. To oczywiście nie wszystko. Poznasz wiele innych narzędzi wspomagających pracę z opisanymi wyżej technologiami (np. Git). Twoja wiedza będzie systematycznie poszerzana o dodatkowe materiały dydaktyczne, które znajdziesz na moich kanałach YouTube, TikTok lub otrzymasz w formie cotygodniowych newsletterów.

W ramach szkolenia rozwiążesz ogromną ilość zadań teoretycznych i praktycznych, które skutecznie przygotują Cię do rozmowy kwalifikacyjnej. Twoja wiedza będzie systematycznie sprawdzana w trakcie naszych spotkań i organizowanych co pewien czas indywidualnych próbnych rozmów kwalifikacyjnych w języku polskim lub angielskim.

Po zakończeniu szkolenia Twoje portfolio powiększy się o kilka lub kilkanaście rozbudowanych projektów, które potwierdzą Twoje praktyczne umiejętności posługiwania się zagadnieniami, pojawiającymi się w kursie. Na każdym etapie szkolenia możesz liczyć na nieograniczoną pomoc mentora. Zagwarantuje to zgodność projektów z przyjętymi założeniami oraz dobrymi praktykami programistycznymi, jak również zmusi Cię do systematycznej pracy nad projektami. Dodatkowo zmierzysz się z zadaniami rozwijania lub modyfikowania istniejących już projektów oraz ich analizy pod kątem wyszukiwania błędów.

Potrzebne aplikacje i narzędzia

Do odbycia szkolenia potrzebujesz komputer lub laptop z zestawem narzędzi do budowania aplikacji pojawiających się w trakcie kursu. Spotkania możemy odbywać również na moim komputerze. Po spotkaniu zawsze otrzymasz wszystkie materiały, które pojawiły się w trakcie spotkania. Potrzebne oprogramowanie szczegółowo opiszę oraz pomogę Ci zainstalować na pierwszym darmowym spotkaniu testowym.

Informacje na temat aplikacji potrzebnych do nawiązania połączenia przekażę w odpowiednim momencie przed rozpoczęciem szkolenia. Dostaniesz wtedy szczegółowy wykaz kolejnych kroków, które należy wykonać w celu przygotowania się do rozpoczęcia kursu.

Umiejętności potrzebne przed
rozpoczęciem kursu

Kurs przeznaczony jest dla osób o różnym stopniu zaawansowania. Możesz do niego przystąpić nawet jeżeli do tej pory nie miałeś nic wspólnego z programowaniem. Jeżeli już pracujesz na podobnym stanowisku, szkolenie również jest dla Ciebie. Celem kursu jest przygotowanie do pierwszej pracy programisty, ale również podnoszenie kwalifikacji osób już pracujących w branży IT. Szkolenie możesz rozpocząć od dowolnego punktu w planie szkolenia. Na początek odbędziemy szczegółową rozmowę kwalifikacyjną w języku polskim lub angielskim. Dzięki niej ocenimy Twój poziom z zakresu wiedzy przed wybranym punktem w planie szkolenia.

Plan szkolenia

  • 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 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 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
  • Przygotowanie konfiguracji do pracy w trybie developerskim oraz w trybie produkcyjnym.
  • Konteneryzacja aplikacji Webpack (patrz punkt 42)
  • 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
  • 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 (patrz punkt 42)
  • 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ą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
  • Konteneryzacja aplikacji React do pracy w trybie developerskim oraz w trybie produkcyjnym (patrz punkt 42)
  • 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
  • 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 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 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ące
  • 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!