Facebook - konwersja
Darmowy fragment

  • nowość
  • promocja

Node.js. Wzorce projektowe i techniki tworzenia aplikacji produkcyjnych - ebook

Wydawnictwo:
Format:
PDF
Data wydania:
18 czerwca 2026
10965 pkt
punktów Virtualo

Node.js. Wzorce projektowe i techniki tworzenia aplikacji produkcyjnych - ebook

Wstępy napisali: Colin J. Ihrig (współtwórca Node.js) i Matteo Collina (główny opiekun Fastify, współtwórca Node.js).

Node.js to obecnie jedna z najpopularniejszych platform do tworzenia aplikacji serwerowych, używana przez miliony programistów na całym świecie. Jej asynchroniczna, sterowana zdarzeniami architektura idealnie sprawdza się w budowaniu skalowalnych systemów internetowych, API i mikrousług. Książka odpowiada na potrzeby współczesnych programistów, prezentując najnowsze funkcje platformy, sprawdzone wzorce projektowe, a także praktyczne techniki tworzenia wydajnych, niezawodnych aplikacji produkcyjnych.

Autorzy prowadzą czytelnika przez wszystkie aspekty profesjonalnego programowania w Node.js od fundamentów platformy i systemu modułów, przez programowanie asynchroniczne z wykorzystaniem callbacks, obietnic i async/await, aż po zaawansowane wzorce projektowe i architektury mikrousług. Szczegółowo omawiają strumienie Node.js, konstrukcyjne, strukturalne i behawioralne wzorce projektowe. Książka zawiera praktyczne receptury odpowiadające na typowe wyzwania: asynchroniczną inicjalizację, buforowanie, anulowanie operacji czy wykonywanie zadań obciążających procesor. Końcowe rozdziały koncentrują się na skalowalności przedstawiają techniki skalowania aplikacji, zastosowanie Kubernetes i wzorce komunikacji w systemach rozproszonych z użyciem Redis, RabbitMQ i ZeroMQ.

Najważniejsze zagadnienia:

  • Asynchroniczne wzorce kontroli przepływu
  • Wzorce projektowe dostosowane do Node.js
  • Testowanie aplikacji testy jednostkowe, integracyjne i E2E
  • Zaawansowane receptury
  • Skalowanie i architektura
  • Komunikacja w systemach rozproszonych

Mistrzowskie opanowanie Node.js od podstaw po systemy produkcyjne

Spis treści

O autorach

O korektorach merytorycznych

Beta czytelnicy

Wstęp 1

Wstęp 2

Wprowadzenie

Rozdział 1. Platforma Node.js

  • Filozofia Node.js
    • Mały rdzeń
    • Małe moduły
    • Mała powierzchnia
    • Prostota i pragmatyzm
  • Jak działa Node.js?
    • Wąskim gardłem są często operacje wejścia-wyjścia
    • Blokujące operacje wejścia-wyjścia
    • Nieblokujące operacje wejścia-wyjścia
    • Demultipleksacja zdarzeń
    • Wzorzec reaktora
    • libuv, czyli silnik wejścia-wyjścia w Node.js
    • Kompletna receptura dla Node.js
  • JavaScript w Node.js
    • Bez obaw uruchamiaj najnowszy kod napisany w JavaScripcie
    • System modułowy
    • Pełny dostęp do usług systemu operacyjnego
    • Uruchamianie kodu natywnego
    • Node.js i TypeScript
  • Podsumowanie

Rozdział 2. System modułów

  • Zalety stosowania modułów
  • Systemy modułów w JavaScripcie i w Node.js
  • Wzorzec ujawnianego modułu
  • Moduły ES
    • Korzystanie z modułów ES w Node.js
    • Składnia modułów ES
    • Algorytm rozwiązywania modułów
    • Szczegółowe omówienie procesu wczytywania modułów
    • Moduły modyfikujące inne moduły
  • Moduły CommonJS
  • Moduły ES i CommonJS - różnice i współdziałanie
    • Tryb ścisły
    • Oczekiwanie na najwyższym poziomie
    • Sposób działania słowa kluczowego this
    • Brakujące odwołania w modułach ES
    • Współdziałanie operacji importowania
    • Importowanie plików JSON
  • Korzystanie z modułów w TypeScripcie
    • Rola kompilatora TypeScriptu
    • Konfiguracja formatu wyjściowego modułu
    • Składnia modułu wejściowego i generowanie danych wyjściowych
    • Rozwiązywanie modułów
  • Podsumowanie

Rozdział 3. Zdarzenia i funkcje wywołania zwrotnego

  • Wzorzec wywołania zwrotnego
    • Styl przekazywania kontynuacji
    • Synchroniczny czy asynchroniczny?
    • Konwencje funkcji wywołań zwrotnych w Node.js
  • Wzorzec obserwatora
    • Klasa EventEmitter
    • Tworzenie i stosowanie egzemplarza EventEmitter
    • Propagowanie błędów
    • Określenie dowolnego obiektu jako obserwowalnego
    • Ryzyko wycieku pamięci
    • Zdarzenia synchroniczne i asynchroniczne
  • Emiter zdarzeń a funkcje wywołania zwrotnego
  • Łączenie wywołań zwrotnych i zdarzeń
  • Podsumowanie
  • Ćwiczenia

Rozdział 4. Asynchroniczne wzorce kontroli przepływu z użyciem funkcji wywołań zwrotnych

  • Wyzwania związane z programowaniem asynchronicznym
    • Tworzenie prostego robota indeksującego strony internetowe
    • Piekło wywołań zwrotnych
  • Najlepsze praktyki dotyczące wywołań zwrotnych
    • Dyscyplina wywołań zwrotnych
    • Stosowanie dyscypliny wywołań zwrotnych
  • Wzorce przepływu sterowania
    • Wykonywanie sekwencyjne
    • Wykonywanie współbieżne
    • Ograniczone wykonywanie współbieżne
  • Podsumowanie
  • Ćwiczenia

Rozdział 5. Asynchroniczne wzorce kontroli przepływu z użyciem obietnic i konstrukcji async/await

  • Obietnice
    • Czym jest obietnica?
    • Specyfikacja Promises/A+ i obiekty podobne do obietnic
    • API obietnicy
    • Tworzenie obietnicy
    • Uproszczenie asynchroniczności
    • Wykonywanie sekwencyjne i iteracja
    • Wykonywanie współbieżne
    • Ograniczone wykonywanie współbieżne
    • Obietnice leniwe
  • Słowa kluczowe async i await
    • Funkcje asynchroniczne i wyrażenie await
    • Wyrażenie await na najwyższym poziomie
    • Obsługa błędów podczas stosowania konstrukcji async/await
    • Wykonywanie sekwencyjne i iteracja
    • Wykonywanie współbieżne
    • Ograniczone wykonywanie współbieżne
  • Problem z nieskończonymi łańcuchami rekurencyjnego rozwiązywania obietnic
  • Podsumowanie
  • Ćwiczenia

Rozdział 6. Programowanie ze strumieniami

  • Znaczenie strumieni
    • Buforowanie i strumieniowanie
    • Efektywność przestrzenna
    • Efektywność czasowa
    • Komponowalność
  • Wprowadzenie do strumieni
    • Anatomia strumieni
    • Strumienie klasy Readable
    • Strumienie klasy Writable
    • Strumienie klasy Duplex
    • Strumienie klasy Transform
    • Strumienie klasy PassThrough
    • Strumienie leniwe
    • Łączenie strumieni za pomocą potoków
  • Asynchroniczne wzorce kontroli przepływu z wykorzystaniem strumieni
    • Wykonywanie sekwencyjne
    • Wykonywanie współbieżne bez ustalonej kolejności
    • Ograniczone wykonywanie współbieżne bez ustalonej kolejności
    • Uporządkowane wykonywanie współbieżne
  • Wzorce potokowania
    • Łączenie strumieni
    • Rozwidlanie strumieni
    • Scalanie strumieni
    • Multipleksowanie i demultipleksowanie
  • Narzędzia dla strumieni odczytu
    • Mapowanie i przekształcanie
    • Filtrowanie i iteracja
    • Wyszukiwanie i ocena
    • Ograniczanie i redukowanie
  • Strumienie internetowe
    • Konwersja strumieni Node.js na strumienie internetowe
    • Konwersja strumieni internetowych na strumienie Node.js
  • Narzędzia dla konsumentów strumieni
  • Podsumowanie
  • Ćwiczenia

Rozdział 7. Konstrukcyjne wzorce projektowe

  • Fabryka
    • Rozdzielenie tworzenia obiektów od ich implementacji
    • Mechanizm stosowania hermetyzacji
    • Tworzenie prostego profilera kodu
    • W ekosystemie Node.js
  • Budowniczy
    • Implementacja konstruktora obiektów URL
    • W ekosystemie Node.js
  • Konstruktor ujawniający
    • Tworzenie niemodyfikowalnego bufora
    • W ekosystemie Node.js
  • Singleton
  • Łączenie modułów
    • Zależności pojedynczego egzemplarza
    • Wstrzykiwanie zależności
  • Podsumowanie
  • Ćwiczenia

Rozdział 8. Strukturalne wzorce projektowe

  • Pełnomocnik
    • Metody implementacji pełnomocnika
    • Tworzenie strumienia zapisującego do dziennika
    • Obserwator zmian i Pełnomocnik
    • W ekosystemie Node.js
  • Dekorator
    • Techniki implementacji dekoratorów
    • Dekorowanie bazy danych Level
    • W ekosystemie Node.js
    • Propozycja dekoratorów w specyfikacji ECMAScript
  • Granica między wzorcami projektowymi Pełnomocnik i Dekorator
  • Adapter
    • Korzystanie z biblioteki Level przez API systemu plików
    • W ekosystemie Node.js
  • Podsumowanie
  • Ćwiczenia

Rozdział 9. Behawioralne wzorce projektowe

  • Strategia
    • Obiekty konfiguracyjne o wielu formatach
    • W ekosystemie Node.js
  • Stan
    • Implementacja prostego gniazda odpornego na awarie
    • W ekosystemie Node.js
  • Szablon
    • Szablon menedżera konfiguracji
    • W ekosystemie Node.js
  • Iterator
    • Protokół iteratora
    • Protokół iterowalny
    • Iteratory i obiekty iterowalne jako natywny interfejs JavaScriptu
    • Implementacja protokołu iterowalnego dla iteratorów
    • Narzędzia do iteracji
    • Generatory
    • Iteratory asynchroniczne
    • Generatory asynchroniczne
    • Asynchroniczne iteratory i strumienie Node.js
    • Narzędzia do iteracji asynchronicznej
    • W ekosystemie Node.js
  • Pośrednik
    • Oprogramowanie pośredniczące w Expressie
    • Wzorzec projektowy Pośrednik
    • Tworzenie frameworka oprogramowania pośredniczącego dla ZeroMQ
    • W ekosystemie Node.js
  • Polecenie
    • Wzorzec Zadanie
    • Bardziej złożone polecenie
    • W ekosystemie Node.js
  • Podsumowanie
  • Ćwiczenia

Rozdział 10. Testowanie - wzorce i najlepsze praktyki

  • Wprowadzenie do testowania oprogramowania
    • Definicje
    • Rodzaje testów
    • Piramida testów
  • Tworzenie testów w Node.js
    • Nasz pierwszy test jednostkowy
  • Program uruchamiający testy w Node.js
    • Nasz pierwszy test z użyciem narzędzia testowego Node.js
    • Organizacja testów
    • Sparametryzowane przypadki testowe
    • Wskazówki i podpowiedzi dla testera
    • Narzędzie do raportowania testów
  • Tworzenie testów jednostkowych
    • Testowanie kodu asynchronicznego
    • Imitacja
  • Tworzenie testów integracyjnych
    • Testowanie z wykorzystaniem lokalnej bazy danych
    • Testowanie aplikacji internetowej
  • Tworzenie testów E2E
    • Struktura aplikacji
    • Przepływ użytkownika
    • Automatyzacja przeglądarki internetowej
    • Tworzenie testu E2E przy użyciu Playwrighta
  • Podsumowanie
  • Ćwiczenia

Rozdział 11. Receptury zaawansowane

  • Obsługa komponentów inicjalizowanych asynchronicznie
    • Problem z komponentami inicjalizowanymi asynchronicznie
    • Lokalna kontrola inicjalizacji
    • Opóźnione uruchomienie
    • Kolejki przed inicjalizacją
    • W ekosystemie Node.js
  • Asynchroniczne przetwarzanie wsadowe i buforowanie
    • Czym jest asynchroniczne przetwarzanie wsadowe?
    • Optymalne buforowanie żądań asynchronicznych
    • Serwer API bez pamięci podręcznej i grupowania zapytań
    • Przetwarzanie wsadowe i buforowanie z użyciem obietnic
  • Anulowanie operacji asynchronicznych
    • Podstawowa receptura na tworzenie funkcji, które można anulować
    • Opakowywanie wywołań asynchronicznych
    • Funkcje asynchroniczne z możliwością anulowania przy użyciu AbortController
  • Wykonywanie zadań obciążających procesor
    • Rozwiązywanie problemu sumy podzbioru
    • Przeplatanie z użyciem setImmediate
    • Korzystanie z procesów zewnętrznych
    • Korzystanie z wątków roboczych
    • Uruchamianie w środowisku produkcyjnym zadań obciążających procesor
  • Podsumowanie
  • Ćwiczenia

Rozdział 12. Skalowalność i wzorce architektoniczne

  • Wprowadzenie do skalowania aplikacji
    • Skalowanie aplikacji utworzonych z użyciem Node.js
    • Trzy wymiary skalowalności
  • Klonowanie i równoważenie obciążenia
    • Moduł cluster
    • Obsługa komunikacji stanowej
    • Skalowanie z użyciem odwrotnego serwera proxy
    • Dynamiczne skalowanie poziome
    • Równoważenie obciążenia między węzłami równorzędnymi
    • Skalowanie aplikacji przy użyciu kontenerów
  • Dekompozycja złożonych aplikacji
    • Architektura monolityczna
    • Architektura mikrousług
    • Wzorce integracji w architekturze mikrousług
  • Podsumowanie
  • Ćwiczenia

Rozdział 13. Wzorce komunikacji i integracji

  • Podstawy systemu komunikacji
    • Wzorce jednokierunkowe i wzorce żądanie-odpowiedź
    • Typy komunikatów
    • Semantyki dostarczania typu push i pull
    • Kolejki, strumienie i asynchroniczne przekazywanie komunikatów
    • Komunikacja bezpośrednia lub z pośrednikiem
  • Wzorzec Publikowanie-Subskrybowanie
    • Tworzenie minimalistycznej aplikacji czatu działającego w czasie rzeczywistym
    • Wykorzystanie Redisa jako prostego brokera komunikatów
    • Wzorzec pub-sub typu P2P z użyciem ZeroMQ
    • Niezawodne dostarczanie komunikatu za pomocą kolejek
    • Niezawodne przesyłanie komunikatów za pomocą strumieni
  • Wzorce dystrybucji zadań
    • Wzorce fan-out i fan-in w ZeroMQ
    • Potoki i konkurujące konsumenty w protokole AMQP
    • Rozdzielanie zadań za pomocą strumieni Redisa
  • Wzorce żądań i odpowiedzi
    • Identyfikator korelacji
    • Adres zwrotny
  • Podsumowanie
  • Ćwiczenia

Skorowidz

Kategoria: Programowanie
Zabezpieczenie: Watermark
Watermark
Watermarkowanie polega na znakowaniu plików wewnątrz treści, dzięki czemu możliwe jest rozpoznanie unikatowej licencji transakcyjnej Użytkownika. E-książki zabezpieczone watermarkiem można odczytywać na wszystkich urządzeniach odtwarzających wybrany format (czytniki, tablety, smartfony). Nie ma również ograniczeń liczby licencji oraz istnieje możliwość swobodnego przenoszenia plików między urządzeniami. Pliki z watermarkiem są kompatybilne z popularnymi programami do odczytywania ebooków, jak np. Calibre oraz aplikacjami na urządzenia mobilne na takie platformy jak iOS oraz Android.
ISBN: 978-83-289-3648-5
Rozmiar pliku: 7,8 MB

BESTSELLERY

Menu

Zamknij