Program JavaScript

Dlaczego potrzebujesz dobrego terminala?

Koszyk Koszyk
  • Opis
  • Recenzje
  • Autor
  • Transkrypt
  • Pytania i odpowiedzi
  • QA

3 ocen

Wprowadzenie

JavaScript na frontach to 5-tygodniowy Program dla front-end developerów i developerek, chcących poznać wszystkie obszary nowoczesnego projektowania aplikacji webowych, pod okiem senior full-stack developerów, którzy wspólnie zajmują się programowaniem od najmłodszych lat.

  1. Tooling & Konfiguracja
  2. Najnowszy JavaScript i TypeScript
  3. Szeroka perspektywa web developmentu
  4. Projektowanie back-endu (Nest.js)
  5. Praca z bazami danych
  6. Produkcyjne praktyki pracy z aplikacją

Tooling & Konfiguracja

W pierwszym tygodniu Programu poznasz szereg narzędzi i sposobów ich konfiguracji. Twoim celem będzie zorganizowanie swojego środowiska pracy tak, aby służyło Ci jak najlepiej, zarówno pod kątem efektywności jak i komfortu. Poznasz opracowane przez Adama techniki pracy, oraz zobaczysz jak wykorzystuje w praktyce najnowsze aplikacje, które wykorzystuje na granicy ich możliwości (a czasem poza nią) poprzez wykorzystanie wiedzy programistycznej, nie tylko w celu rozwoju projektów.

Najnowsze wersje JavaScript i TypeScript

Cały ekosystem JavaScriptu rozwija się w bardzo dużym tempie. Z tego powodu część naszej uwagi skupi się na tym, aby zapoznać się z najnowszymi możliwościami zarówno JavaScriptu, jak i najnowszych wersji narzędzi, z których korzystasz niemal każdego dnia. Na tym etapie zakładamy że posiadasz już przynajmniej dobrą znajomość JavaScript oraz podstawy TypeScript.

Szeroka perspektywa full-stack web developmentu

Poruszanie się po różnych obszarach aplikacji w roli full-stack'a, wymaga nie tylko ich głębokiej znajomości ale też umiejętności spojrzenia na nie z szerokiej perspektywy. W wielu przypadkach świadomość możliwości jest ważniejsza niż posiadanie faktycznej wiedzy o wąskim obszarze. W tym Programie dowiesz się o wielu zagadnieniach, które pomimo tego że nie będą omówione na głębokim poziomie, pozwolą Ci swobodnie poruszać się po aplikacjach tworzonych w ekosystemie JavaScriptu.

Projektowanie back-endu

JavaScript oraz obecność Node.js sprawiają, że możesz z ich pomocą projektować również back-end. Jest to bardzo rozległe zagadnienie, które samo w sobie może stać się specjalizacją. Pomimo tego w Programie zebraliśmy najważniejsze zagadnienia oraz przeprowadzimy Cię przez proces tworzenia back-endu aplikacji na przykładzie jednego z najlepszych obecnie frameworków - Nest.js.

Praca z bazami danych

Nieodłącznym elementem praktycznie każdej aplikacji są bazy danych. Ich projektowanie oraz odpowiednia optymalizacja jest złożona ale jednocześnie uwzględnia szereg najważniejszych praktyk, które wystarczy znać aby rozpocząć z nimi pracę. Materiał uwzględniony w tym Programie pozwoli Ci na ogólne zrozumienie tego jak działają bazy danych oraz jak pracować z informacjami, które są w nich przechowywane.

Produkcyjne techniki pracy

Ostatnim etapem rozwoju aplikacji jest jej udostępnienie na serwerze produkcyjnym i właśnie na nim skupia się ostatnia część Programu. Poznasz w niej nie tylko sposoby organizacji środowiska produkcyjnego ale też najważniejszych praktyk pracy nad jej rozwojem oraz utrzymaniem, w oparciu o m.in. CI&CD czy zespołową pracę w rozbudowanym repozytorium GIT.

Dla kogo jest ten kurs?

JavaScript na Wszystkich Frontach to Program opracowany przede wszystkim z myślą o osobach znających JavaScript po stronie front-endu, chcących rozszerzyć swoje kompetencje w szeroko pojętym full-stack web developmencie.

Dlaczego wybrać właśnie ten kurs?

  1. Kurs wideo to najbardziej efektywna a zarazem najprzyjemniejsza forma nauki. Jest on tak prowadzony, byś cały czas mógł go śledzić z zainteresowaniem i zaangażowaniem, a także czerpać satysfakcję ze zdobytej wiedzy!
  2. Wiedza, którą otrzymujesz w tym kursie, to nie tylko sucha teoria, ale również wskazówki od praktyka z wieloletnim doświadczeniem, dzięki którym dużo łatwiej będzie Ci opanować materiał i pracować efektywniej.
  3. Uczysz się na praktycznych przykładach. Kurs, który masz przed sobą to esencja praktycznej wiedzy i doświadczenia a także wzorów, które oszczędzą Ci godziny pracy i poszukiwań.

Autor: Adam Gospodarczyk

Nazywam się Adam Gospodarczyk, jestem designerem i full-stack developerem. Przez całą swoją karierę zawodową pracuję w świecie startupów z branży edukacji, szkoleń pracowników oraz rekrutacji. Jestem współzałożycielem trzech produktów, które rozwijałem w roli CTO od samego początku. Przez ten czas miałem zdobyłem szerokie doświadczenie znacznie wykraczające poza zakres samej technologii. W maju 2017 roku założyłem kanał na YouTube „overment” (https://overment.com) w ramach side-project’u po godzinach. Dziś jest to jeden z największych w Polsce tego typu projektów dla programistów za który otrzymałem nagrodę „JavaScript Hero of Community” podczas konferencji JS Poland 2019. Łącząc moje startup’owe doświadczenie z pasją do technologii, pomogę Ci nauczyć się programowania patrząc szerzej na perspektywę całego biznesu - jest to doceniana przez pracodawców umiejętność, którą wiele osób całkowicie pomija. Przy tym wszystkim pokażę Ci jak ważna jest regularna nauka i pozostawanie na bieżąco.

Nazywam się Adam Gospodarczyk, jestem designerem i full-stack developerem. Przez całą swoją karierę zawodową pracuję w świecie startupów z branży edukacji, szkoleń pracowników oraz rekrutacji. Jestem współzałożycielem trzech produktów, które rozwijałem w roli CTO od samego początku. Przez ten czas miałem zdobyłem szerokie doświadczenie znacznie wykraczające poza zakres samej technologii. W maju 2017 roku założyłem kanał na YouTube „overment” (https://overment.com) w ramach side-project’u po godzinach. Dziś jest to jeden z największych w Polsce tego typu projektów dla programistów za który otrzymałem nagrodę „JavaScript Hero of Community” podczas konferencji JS Poland 2019. Łącząc moje startup’owe doświadczenie z pasją do technologii, pomogę Ci nauczyć się programowania patrząc szerzej na perspektywę całego biznesu - jest to doceniana przez pracodawców umiejętność, którą wiele osób całkowicie pomija. Przy tym wszystkim pokażę Ci jak ważna jest regularna nauka i pozostawanie na bieżąco.

5

Średnia ocen autora

Ten kurs nie posiada jeszcze transkryptu. Choć bardzo się staramy, wygenerowanie transkryptów do wszystkich kursów jest bardzo czasochłonne. W wielu przypadkach wymaga zaangażowania drogiego oprogramowania i godzin pracy przy poprawianiu transkryptu tak, aby był on możliwie jak najlepszy.

Zależy nam na tym, aby przygotować transkrypty do wszystkich naszych treści. To jedyny sposób dla osób niedosłyszących, aby mogły wygodnie uczyć się technologii. Poza tym, transkrypty ułatwiają skanowanie kursu w poszukiwaniu informacji i jego indeksowanie.

Szukamy osób, które mogłyby nam pomóc w poprawianiu transkryptów. Jeśli masz chwilę wolnego czasu i interesuje Cię dany kurs, w zamian za taką pomoc chętnie udostępnimy Ci wybrany materiał. Wyślij swoje zgłoszenie tutaj, jeśli możesz pomóc nam rozwijać platformę.

  • Informacje
  • Lekcje

Autor: Adam Gospodarczyk

Czas: 5 godzin 20 minut

Aktualizacja: 15.09.2022

  • Certyfikat w ramach Ścieżki
  • Dostęp z urządzeń przenośnych
  • Licencje dla firm i szkół
Podaruj w prezencie

Konfiguracja terminala

  • Dlaczego potrzebujesz dobrego terminala?

  • Wybór terminala

  • Konfiguracja terminala

  • Techniki pracy z terminalem

  • Przydatne polecenia

  • Praca z SSH

IDE

  • Wybór IDE

  • Lekkie edytory kodu

  • Konfiguracja edytora

  • Dodatkowe narzędzia

  • Sandboxy

  • Techniki pracy

Dodatkowe narzędzia

  • Praca koncepcyjna

  • Tooling

  • Narzędzia wspomagające

  • Narzędzia ułatwiające skupienie

  • Organizacja wiedzy

  • No-code

Package Managery

  • Przegląd package managerów

  • Manifest projektu

  • Konfiguracja

  • Własne skrypty

  • CLI

Tooling

  • Narzędzia

  • ESLint Prettier Vite

  • Tailwind i Tailwind UI

  • Build produkcyjny

Aktualności ES6-ES13

  • Standard ECMAScript

  • Szybka powtórka ES6+

  • Nowości w ES7-ES9

  • Nowości w ES10-ES13

TypeScript

  • Czy potrzebujesz TypeScriptu

  • Co daje TypeScript?

  • Aktualizacja stacku JS & TS

  • TypeScript 3.8-4.0

  • TypeScript 4.0-4.7

HTTP

  • Praktyczna praca z metodami HTTP

  • Praktyczna praca ze statusami kodów

  • Praktyczna komunikacja

  • Webhooki

Formaty wymiany danych

  • Rodzaje Payloadu

  • Client Payload

  • Server Payload

Komunikacja w aplikacji

  • Schemat komunikacji

  • Komunikacja po stronie front-endu

  • Komunikacja po stronie back-endu

  • Wymiana informacji

  • Problemy komunikacji

Komunikacja w REST

  • Standard REST

  • Endpointy

  • Wyjątki

Komunikacja w GraphQL

  • Wprowadzenie do GraphQL

  • GraphQL na froncie

  • GraphQL fetch

  • GraphQL w Nest.js

Walidacja danych

  • Walidacja po stronie front-endu

  • Walidacja po stronie back-endu

  • Checklista

Architektura baz danych

  • Wybór bazy danych

  • Zasady projektowania baz danych

  • Rodzaje relacji

  • Najczęściej popełniane błędy

  • Bazy lokalne i produkcyjne

Wprowadzenie do aplikacji full-stack

  • Wprowadzenie do projektu

Back-end z SQL builderem

  • Wariant back-end z knex.js i sqlite3

  • Struktura bazy w oparciu o migracje

  • Seed bazy danych

  • Korzystanie z Query Buildera

  • Migracje i produkcja

Back-end z rozwiązywaniem ORM

  • Objection.js

  • Relacje pomiędzy modelami w Objection.js

  • Prisma

  • Relacje pomiędzy modelami w Prisma

  • Seed bazy danych w Prisma

  • Porównanie dwóch podejść ORM

Back-end jako serwer API

  • Implementacja serwera HTTP w Node.js

  • Dodatkowe narzędzia developerskie

  • REST i obsługa błędów na serwerze

  • CRUD

  • Resource Resolvers

  • Połączenie z bazą danych

  • Express.js

  • REST w Express.js

  • Routing i Kontrolery

  • Walidacja zapytań

  • Warstwa serwisowa

  • API w Adonis.js

  • Warstwa kontrolerów

  • Walidacja danych

  • Providery

  • JWT

  • Poprawa obsługi błędów

  • Podsumowanie API - 3 podejścia

Front-end jako SPA

  • Przygotowanie do budowy SPA

  • React

  • Resources

  • Resources i Stan

  • Queries

  • Mutations

  • Mutations i Queries

  • Context i stan globalny

  • Vue

  • Resources i Stan w Vue

  • Pinia

  • Angular

  • Podział na moduły

  • Modele danych

  • Stan globalny

  • Interceptory i RxJS

  • Odczytywanie route params

  • Svelte

  • Svelte-Query

  • Stores i Observables

  • Widoki zamówień

  • Widoki restauracji

Autoryzacja i Uwierzytelnienie

  • Autoryzacja i Uwierzytelnienie

  • Dane wrażliwe

  • Rodzaje uwierzytelnienia

  • Basic Auth

  • API Key

  • Oauth 2.0 & JWT

  • Session Cookie

  • Błędy CORS

  • Zabezpieczenia CSRF

  • Najczęściej spotykane błędy Security

Szkielet, konfiguracja i pierwszy endpoint

  • Generowanie projektu w oparciu o @nestjs cli

  • Porównanie Nest.js z Express.js

  • Deklaratywny sposób pisania kontrolera

Kontrolery i walidacja danych wejściowych

  • Generowanie kontrolerów i model danych

  • Wykorzystanie DTO (Data Transfer Object) i walidacja danych

  • Obsługa i kody błędów - rzucanie wyjątków

  • Kontrolery, DTO i model danych - podsumowanie

Warstwa serwisowa i DI (Dependency Injection)

  • Serwisy - dodatkowa warstwa na logikę aplikacji

  • Współdzielenie danych dzięki Dependency Injection

  • Zależności pomiędzy serwisami

Modułowa budowa aplikacji

  • Grupowanie logiki biznesowej za pomocą Feature Modules

Twardy zapis danych w oparciu o ORM

  • TypeORM - podłączenie do bazy danych i Encje

  • ActiveRecord: Odczyt i Zapis w bazie danych

  • Implementacja relacji: OneToMany - ManyToOne

  • Wykorzystanie Repository Pattern - separacja zależności

Rozbudowa struktury bazy danych

  • Projektowanie struktury bazy

  • Rodzaje relacji danych

  • Dodanie relacji do bazy danych

  • Techniki pracy ze zmiennymi środowiskowymi

  • Własne repozytoria i wykorzystanie relacji

  • Migracje w TypeORM

  • Seedowanie bazy

Autoryzacja i Uwierzytelnienie w praktyce

  • Rejestrowanie użytkowników

  • Własny dekorator

  • Globalna obsługa błędów

  • Tokeny JWT

  • Logowanie z pomocą tokenów

  • Tworzenie Refresh Token

  • Guardy

Dodawanie i odczytywanie danych

  • Tworzenie nowych wpisów

  • Pobieranie i filtrowanie informacji o wpisach

  • Pobieranie i filtrowanie relacji

  • Strategie wyszukiwania

  • Throttling i Limity

Usuwanie danych

  • Aktualizowanie danych

  • Sposoby usuwania danych

  • Usuwanie rekordów

  • Kaskadowe usuwanie rekordów

Middleware

  • Middleware

  • Pipe

  • Guard

  • Filter

  • Interceptor

Wprowadzenie do testowania

  • Powrót do projektu

  • Testing debugger

  • Pierwszy test

  • Grupy testów

  • Naprawa wygenerowanych testów

  • Testowanie Kontrollerów

  • Testowanie Serwisu

Aplikacja na produkcji

  • Połączenie z VPS

  • Konfiguracja NGINX

  • Konfiguracja domeny

  • Awaryjne połączenie z serwerem

  • Instalacja bazy danych

  • Ręczne uruchomienie aplikacji na serwerze

  • Wprowadzenie do CI&CD

  • Github Actions i Node.js

  • Przykłady Github Actions

Newslettery i Maile Transakcyjne

  • Systemy mailowe

  • Integracja Sendgrid

  • Praktyczna praca z e-mailami

  • Upload plików

Zakończenie Programu

  • Podsumowanie

}