Zaawansowany Node.js z TypeScript

Szkolenie jest przeznaczone dla osób, które chcą wejść na wyższy poziom pracy z backendem w Node.js. Uczestnicy poznają zaawansowane techniki, które są stosowane w profesjonalnych zespołach, w tym wielowarstwową architekturę aplikacji, integrację TypeScriptu w dużych projektach, wzorce projektowe oraz podejście do skalowania usług. Pracujemy na realnych przykładach związanych z przetwarzaniem danych, obsługą asynchroniczności, worker threads, strumieniami oraz integracją z bazami danych. Dzięki temu po szkoleniu uczestnicy są w stanie tworzyć nowoczesne, wydajne i dobrze zaprojektowane serwisy backendowe, które sprawdzają się w środowiskach produkcyjnych.

Program

Podstawy TypeScript w Node.js

  1. współdzielone DTO
  2. `ResultT>` jako typ zwracany w warstwie domeny
  3. zawężanie typów podczas walidacji danych wejściowych
  4. konfiguracja środowiska ESM

Dekoratory i metadane w TypeScript

  1. budowa lekkiego, niestandardowego mini-frameworka HTTP: `@Controller()`, `@Inject()`
  2. integracja z Reflect Metadata
  3. automatyczna rejestracja endpointów za pomocą dekoratorów

Zaawansowana asynchroniczność: Event Loop, Streamy, Backpressure

  1. dogłębna analiza pętli zdarzeń (event loop) w Node.js
  2. obsługa dużych plików za pomocą strumieni
  3. strategie radzenia sobie z backpressure

Worker Threads: przetwarzanie plików w tle

  1. `FileProcessingWorker` (worker thread)
  2. przesyłanie buforów plików do workerów
  3. komunikacja: statusy, progres, błędy
  4. `structuredClone` i transferable objects

Architektura: Clean Architecture, DI, Ports & Adapters

  1. Application – Domain – Infrastructure
  2. wprowadzenie do architektury warstwowej

Wzorce projektowe w praktyce

  1. Command pattern dla operacji domenowych
  2. Factory pattern dla tworzenia workerów
  3. Observer/EventEmitter dla lokalnych zdarzeń przetwarzania
  4. Adapter pattern dla warstwy przechowywania plików

WebSockety: realtime processing progress

  1. implementacja serwera WebSocket
  2. powiązanie WebSocketów z workerami
  3. rozgłaszanie aktualizacji do klientów frontendowych

Wydajność i diagnostyka

  1. CPU & heap profiling
  2. analiza event loop
  3. symulacja wycieku pamięci w workerze

Bezpieczeństwo

  1. sanitizacja danych wejściowych
  2. walidacja żądań za pomocą dekoratorów
  3. tokeny uwierzytelniające
  4. ograniczanie liczby żądań (rate limiting)
  5. separacja sekretów i konfiguracji