#217

Full Stack JavaScript – Nowoczesny Backend w Node.js i TypeScript cz.2

Przedstawiamy 2 część warsztatu z serii Full Stack JavaScript, w którym zapoznamy się serwerowym wykorzystaniem JavaScript.

W pierwszej części, poznaliśmy framework NestJS oraz jak pisać backend w TypeScript.
Teraz zajmiemy się architekturą aplikacji, testami jednostkowymi, testami e2e, infrastrukturą i deploymentem aplikacji napisanych w Node.js.

Druga część warsztatu jest niezależna od pierwszej, i jeśli jesteś bardziej doświadczonym programistą, możesz samemu nadrobić materiał, który będzie wymagany do zrozumienia ćwiczeń w części drugiej. Wystarczy że przerobisz pierwszą sekcję “Overview” w dokumentacji NestJS: https://docs.nestjs.com/first-steps.
– Nest CLI
– Controllers
– Providers
– Modules
– Middleware
– Exception filters
– Pipes
– Guards
– Custom decorators

Dlaczego JavaScript?

JavaScript pojawił się ponad 20 lat temu jako język skryptowy w przeglądarkach internetowych, czyli po stronie klienta. Później zawitał też po stronie serwera jako Node.js, a dalszy jego rozwój pozwala nam dziś budować aplikacje mobilne, desktopowe, programować bazy danych a nawet roboty.

Czy wiedziałeś że najbardziej popularne IDE dla web developerów, Visual Studio Code jest napisane w TypeScript HTML i CSS ?

Idea “Full Stack JavaScript” opiera się na wykorzystaniu technologii webowych, HTML, CSS i JavaScript we wszystkich etapach budowy aplikacji:
– Strony internetowe (Czysty HTML+CSS+JavaScript, Angular, React, Vue)
– Aplikacje mobilne (Cordova, Capacitor, Ionic, NativeScript)
– Aplikacje desktopowe (Electron)
– Serwer (Node.js, Express, NestJS, Fastify)
– Bazy danych (MongoDB Shell)
– IoT (Cylon.js, Johnny-five)

Podczas warsztatu zapewniamy dostęp do kawy, herbaty, wody. W porze obiadowej zapewniamy pizzę w wersji mięsnej lub wegetariańskiej.

Żarówka

Czego się nauczysz?

Na warsztacie stworzymy nowoczesny serwer API w Node.js wykorzystując framework NestJS.
Będziemy pisali w TypeScript, gdyż pozwala on nam na zastosowanie najnowszej wersji ECMAScript, a statyczne typowanie pomoże nam w utrzymaniu aplikacji na wysokim poziomie niezawodności i przejrzystości kodu.
Skupimy się na rozplanowaniu architektury aplikacji inspirując się zasadami Clean Architecture. Zobaczymy jak pisanie testów wymusza dobre praktyki w kodzie.
Rozdzielimy logikę biznesową od warstwy transportu (HTTP, WebSocket, TCP, CLI).
Na koniec poznamy narzędzia wspierające procesy budowania paczki produkcyjnej aplikacji, deploy i monitoring aplikacji na serwerze produkcyjnym.
Grupa

Dla kogo jest ten warsztat?

Warsztat jest przeznaczony dla programistów ze znajomością JavaScript i TypeScript w zakresie podstawowym. Zagadnienia które będą używane ale nie omawiane na warsztacie:
1. JavaScript
- var, const, let
- funkcja
- klasa
- ES Modules (import/export)
- arrow function
- Promise
- async/await
2. TypeScript
- proces kompilacji TS do JS
- podstawowe typy
- interfejsy
- dekoratory
- typy generyczne
3. Konsola systemowa

Prowadzący

Piotr Błaszczak:

Full Stack Web Developer od 2007, konsultant i szkoleniowiec. Zaczynał od PHP i MySQL, lecz szybko dostrzegł potęgę JavaScript i NoSQL. Obecnie pisze backend w Node.js z wykorzystaniem Nest, a front w Angular, po obu stronach wykorzystując TypeScript. Miłośnik RxJS oraz programowania reaktywnego.

Poza pracą w IT jest Instruktorem Freedivingu, nurkowania na wstrzymanym oddechu. Balansuje na slackline, skacze na trampolinach, żongluje. Niepytany bez skrępowania zaznaczy, że "morsowałem" ;)

Program warsztatów

  1. Refactoring aplikacji z pierwszej części warsztatu.
    1. Architektura aplikacji(Single responsibility, Reusable, Clean Architecture)
    2. Oddzielenie logiki biznesowej od warstwy transportu
    3. Test Driven Development na pomoc lepszej architekturze i stabilności
  2. Dodanie testów jednostkowych.
    1. Mockowanie serwisów
    2. Tworzenie testowej instancji bazy danych
    3. Zasilanie bazy danych testowymi rekordami
  3. Dodanie testów e2e.
    1. Wykonywanie zapytań: GET, POST, DELETE
    2. Upload plików
  4. Automatyczne tworzenie danych testowych (fixtures).
    1. pliki
    2. struktura bazy danych
    3. uzupełnianie bazy testowymi rekordami
  5. Własne CLI.
    1. uruchamianie elementów aplikacji z linii poleceń
    2. uruchamianie zadań CRON
    3. migracje baz danych
  6. Build, deploy i monitoring aplikacji
    1. build z shell.js
    2. deploy z ShipIt.js
    3. monitoring i zarządzanie procesami z PM2
  7. Inne warstwy transportu: WebSocket, TCP

Uwaga

Liczba miejsc ograniczona! Organizator zastrzega sobie prawo do zmiany lokalizacji wydarzenia oraz jego odwołania w przypadku niezgłoszenia się minimalnej liczby uczestników.

Zapisy na wybrany warsztat zostały zakończone.