Platforma Node.js. Przewodnik webdevelopera. Wydanie III - ebook
Platforma Node.js. Przewodnik webdevelopera. Wydanie III - ebook
Platforma Node.js służy do tworzenia aplikacji ogólnego przeznaczenia w języku JavaScript, które nie wymagają przeglądarki internetowej, a sam kod może działać zarówno po stronie klienta, jak i serwera. W Node.js wykorzystano szybki silnik JavaScriptu, V8. Platforma ta udostępnia stabilną bibliotekę do obsługi asynchronicznych sieciowych operacji wejścia-wyjścia. Dodatkowo programista ma do dyspozycji bogaty zestaw niezależnych modułów. Szczególnie atrakcyjne jest wykorzystanie Node.js do budowy aplikacji związanych z internetem rzeczy (IoT) i mikrousług.
W tej książce znajdziesz przegląd zagadnień potrzebnych do nauki programowania w Node.js. Dowiesz się między innymi, w jaki sposób można zaimplementować mechanizmy przechowywania danych w bazach danych, uwierzytelniania użytkownika czy komunikacji między użytkownikami w czasie rzeczywistym. Dodatkowo zaprezentowano tu technikę instalowania kodu na serwerze za pomocą platformy Docker. Nie zabraknie też opisu najlepszych praktyk z dziedziny tworzenia oprogramowania i rozkładania dużego obciążenia między serwery zaplecza. Ciekawym tematem ujętym w książce jest implementacja mikrousług REST w architekturze wielowarstwowej.
Najważniejsze zagadnienia przedstawione w książce:
- czym jest platforma Node.js, jak się rozwija i do czego może się przydać
- opis konfigurowania platformy i omówienie modułów, a także korzystanie z narzędzia npm
- tworzenie aplikacji dla urządzeń mobilnych, w tym wdrożenie modelu REST
- korzystanie z biblioteki Socket.IO
- testowanie aplikacji, w tym testy jednostkowe, testy REST i testy funkcjonalne
Node.js — platforma, która zapewnia niezawodność, prostotę i wydajność kodu!
David Herron przez wiele lat był inżynierem oprogramowania w Dolinie Krzemowej. Pracował nad różnorodnymi projektami, włączając w to aplikacje do monitorowania wydajności systemów paneli słonecznych. Jako starszy inżynier w Sun Microsystems pracował w zespole Java SE Quality Engineering, Herron pracował też dla firmy VXtreme nad oprogramowaniem, które później stało się aplikacją Windows Media Player. Interesuje się pojazdami elektrycznymi, światowymi zasobami energii, zmianami klimatu i ochroną środowiska.
Spis treści
O autorze (9)
O recenzencie (11)
Przedmowa (13)
Rozdział 1. O platformie Node.js (19)
- Możliwości platformy Node.js (21)
- JavaScript po stronie serwera (22)
- Dlaczego powinieneś używać platformy Node.js? (22)
- Popularność (22)
- Stosowanie JavaScriptu na wszystkich poziomach zestawu narzędzi (23)
- Wykorzystanie inwestycji Google'a w rozwój silnika V8 (23)
- Prostszy asynchroniczny model sterowany zdarzeniami (24)
- Architektura mikrousług (24)
- Platforma Node.js jest wytrzymała, ponieważ przetrwała poważny rozłam i powstanie wrogiego rozgałęzienia (24)
- Wydajność i wykorzystanie zasobów (26)
- Czy Node.js to rakotwórcza katastrofa w obszarze skalowania? (28)
- Wykorzystanie zasobów serwera, zyski firmy i ekologiczny hosting (29)
- Node.js, architektura mikrousług i systemy łatwe do testowania (30)
- Node.js a model Twelve-Factor (31)
- Podsumowanie (31)
Rozdział 2. Konfigurowanie platformy Node.js (33)
- Wymagania systemowe (33)
- Instalowanie platformy Node.js z użyciem menedżerów pakietów (34)
- Instalowanie platformy Node.js w systemie Mac OS X za pomocą narzędzia MacPorts (34)
- Instalowanie platformy Node.js w systemie Mac OS X za pomocą narzędzia Homebrew (35)
- Instalowanie platformy Node.js w systemach Linux, *BSD i Windows z użyciem systemów zarządzania pakietami (36)
- Instalowanie dystrybucji platformy Node.js z witryny nodejs.org (36)
- Instalowanie z użyciem kodu źródłowego w systemach POSIX-owych (37)
- Instalowanie wymaganych elementów (38)
- Moduły z kodem natywnym i node-gyp (38)
- Instalowanie narzędzi dla programistów w systemie Mac OS X (39)
- Instalowanie platformy Node.js z użyciem kodu źródłowego we wszystkich systemach POSIX-owych (40)
- Instalowanie instancji na potrzeby programowania za pomocą narzędzia nvm (41)
- Polityka tworzenia wersji platformy Node.js i zalecane wersje (43)
- Uruchamianie i testowanie instrukcji (44)
- Narzędzia platformy Node.js uruchamiane w wierszu poleceń (44)
- Uruchamianie prostego skryptu za pomocą platformy Node.js (45)
- Uruchamianie serwera za pomocą platformy Node.js (46)
- Npm - menedżer pakietów platformy Node.js (47)
- Platforma Node.js a standard ECMAScript 6 (ES2015, ES2016 itd.) (48)
- Używanie transpilatora Babel do korzystania z eksperymentalnych funkcji JavaScriptu (51)
- Podsumowanie (52)
Rozdział 3. Moduły platformy Node.js (53)
- Definiowanie modułu (53)
- Format modułów w platformie Node.js (55)
- Moduły oparte na plikach (55)
- Moduły oparte na katalogach (57)
- Algorytm używany w platformie Node.js dla instrukcji require(moduł) (57)
- Identyfikatory modułów i ścieżki (58)
- Struktura katalogów przykładowej aplikacji (59)
- System zarządzania pakietami w platformie Node.js - npm (61)
- Format pakietów npm (61)
- Wyszukiwanie pakietów npm (63)
- Inne polecenia narzędzia npm (64)
- Numery wersji pakietów (69)
- Krótka uwaga na temat specyfikacji CommonJS (71)
- Podsumowanie (72)
Rozdział 4. Serwery i klienty HTTP - pierwsze kroki tworzenia aplikacji internetowej (73)
- Przesyłanie i odbieranie zdarzeń za pomocą obiektów typu EventEmitter (74)
- Teoria działania klasy EventEmitter (75)
- Aplikacje w postaci serwera HTTP (76)
- Wielowierszowe i szablonowe łańcuchy znaków ze standardu ES2015 (79)
- Sniffer HTTP - podsłuchiwanie wymiany komunikatów przez protokół HTTP (80)
- Platformy do tworzenia aplikacji internetowych (83)
- Wprowadzenie do platformy Express (84)
- Domyślna aplikacja z platformy Express (87)
- Warstwa pośrednia w platformie Express (89)
- Warstwa pośrednia i ścieżki żądań (91)
- Obsługa błędów (92)
- Wyznaczanie liczb ciągu Fibonacciego za pomocą aplikacji z platformy Express (93)
- Kod wymagający obliczeniowo a pętla zdarzeń w platformie Node.js (97)
- Zgłaszanie żądań za pomocą klienta HTTP (101)
- Wywoływanie usługi w architekturze REST z zaplecza z poziomu aplikacji opartej na platformie Express (103)
- Tworzenie prostego serwera w architekturze REST za pomocą platformy Express (104)
- Przekształcanie aplikacji do wyznaczania liczb Fibonacciego na usługę w architekturze REST (107)
- Wybrane moduły i platformy związane z architekturą REST (109)
- Podsumowanie (109)
Rozdział 5. Pierwsza aplikacja oparta na platformie Express (111)
- Obietnice ze standardu ES2015 i funkcje routera z platformy Express (111)
- Obietnice a obsługa błędów (113)
- "Spłaszczanie" asynchronicznego kodu (114)
- Dodatkowe narzędzia (115)
- Platforma Express i paradygmat MVC (116)
- Tworzenie aplikacji Notes (117)
- Pierwszy model w aplikacji Notes (118)
- Strona główna aplikacji Notes (120)
- Dodawanie nowej notatki - tworzenie (123)
- Wyświetlanie notatek - wczytywanie (127)
- Edycja istniejącej notatki - aktualizowanie (128)
- Kasowanie notatek - usuwanie (129)
- Motywy w aplikacjach opartych na platformie Express (131)
- Skalowanie - uruchamianie kilku instancji aplikacji Notes (133)
- Podsumowanie (136)
Rozdział 6. Implementacja paradygmatu Mobile-First (137)
- Problem: aplikacja Notes nie jest dostosowana do urządzeń mobilnych (138)
- Paradygmat Mobile-First (najpierw wersja mobilna) (139)
- Zastosowanie w aplikacji Notes platformy Bootstrap firmy Twitter (141)
- Konfigurowanie platformy Bootstrap (141)
- Dodawanie platformy Bootstrap do szablonów aplikacji (143)
- Projekt aplikacji Notes w modelu Mobile-First (145)
- Podstawy systemu tabelowego z platformy Bootstrap (145)
- Ulepszanie listy notatek na stronie głównej (148)
- Ścieżka powrotu w nagłówku strony (149)
- Porządkowanie formularza do dodawania i edytowania notatek (152)
- Tworzenie niestandardowych arkuszy stylów platformy Bootstrap (154)
- Narzędzia do dostosowywania platformy Bootstrap (157)
- Podsumowanie (158)
Rozdział 7. Przechowywanie i pobieranie danych (159)
- Przechowywanie danych i kod asynchroniczny (160)
- Rejestrowanie informacji w dzienniku (160)
- Rejestrowanie żądań przy użyciu pakietu Morgan (161)
- Komunikaty diagnostyczne (163)
- Przechwytywanie zawartości strumieni stdout i stderr (163)
- Nieprzechwycone wyjątki (164)
- Zapisywanie notatek w systemie plików (165)
- Zapisywanie notatek w systemie LevelUP (171)
- Zapisywanie notatek za pomocą SQL-a w systemie SQLite3 (174)
- Przechowywanie notatek za pomocą podejścia ORM i modułu Sequelize (180)
- Zapisywanie notatek w systemie MongoDB (187)
- Podsumowanie (193)
Rozdział 8. Uwierzytelnianie wielu użytkowników za pomocą mikrousług (195)
- Tworzenie mikrousługi z informacjami o użytkownikach (196)
- Model z informacjami o użytkownikach (198)
- Serwer REST z informacjami o użytkownikach (202)
- Skrypty do testowania serwera uwierzytelniania użytkowników i zarządzania nim (209)
- Obsługa logowania w aplikacji Notes (212)
- Obsługa logowania do aplikacji Notes z użyciem Twittera (226)
- Zestaw komponentów aplikacji Notes (232)
- Podsumowanie (233)
Rozdział 9. Dynamiczna interakcja między klientem a serwerem z użyciem biblioteki Socket.IO (235)
- Wprowadzenie do biblioteki Socket.IO (237)
- Inicjalizowanie biblioteki Socket.IO za pomocą platformy Express (237)
- Aktualizowanie strony głównej aplikacji Notes w czasie rzeczywistym (241)
- Użycie klasy EventEmitter w modelu z aplikacji Notes (241)
- Generowane w czasie rzeczywistym zmiany na stronie głównej aplikacji Notes (243)
- Operacje w czasie rzeczywistym w trakcie wyświetlania notatek (246)
- Czat między użytkownikami i dodawanie komentarzy na temat notatek (249)
- Model danych do przechowywania komentarzy (250)
- Obsługa komentarzy w routerze z aplikacji Notes (253)
- Modyfikowanie szablonu do wyświetlania notatek pod kątem komentarzy (254)
- Podsumowanie (261)
Rozdział 10. Instalowanie aplikacji opartych na platformie Node.js (263)
- Architektura aplikacji Notes (264)
- Tradycyjne instalowanie usług na platformę Node.js w Linuxie (265)
- Wymagania wstępne - przygotowanie baz danych (266)
- Instalowanie platformy Node.js w systemie Ubuntu (267)
- Konfigurowanie systemu PM2 na potrzeby zarządzania procesami platformy Node.js (271)
- Instalowanie mikrousług na platformę Node.js z użyciem systemu Docker (275)
- Instalowanie Dockera na laptopie (277)
- Tworzenie sieci AuthNet dla usługi uwierzytelniania użytkowników (281)
- Tworzenie sieci FrontNet w aplikacji Notes (288)
- Dostęp do dostosowanej do Dockera aplikacji Notes z poziomu innych urządzeń (293)
- Instalacja w chmurze za pomocą narzędzia Docker Compose (299)
- Instalowanie aplikacji w chmurze za pomocą narzędzia Docker Compose (303)
- Podsumowanie (308)
Rozdział 11. Testy jednostkowe (309)
- Testowanie kodu asynchronicznego (310)
- Asercje - najprostsza technika testowania (311)
- Testowanie modelu (312)
- Wybrane narzędzia testowe: Mocha i Chai (312)
- Zestaw testów modelu z aplikacji Notes (313)
- Używanie Dockera do zarządzania testowymi serwerami bazodanowymi (322)
- Zarządzanie infrastrukturą testów za pomocą narzędzia Docker Compose (322)
- Skrypty w pliku package.json dotyczące infrastruktury testów dostosowanej do Dockera (325)
- Wykonywanie testów za pomocą narzędzia Docker Compose (327)
- Testowanie usług zaplecza zgodnych z architekturą REST (328)
- Bezobsługowe testowanie frontonu w przeglądarce za pomocą narzędzia CasperJS (331)
- Konfigurowanie (332)
- Ułatwianie testowania interfejsu użytkownika aplikacji Notes (333)
- Skrypt testu aplikacji Notes za pomocą narzędzia CasperJS (333)
- Uruchamianie testów interfejsu użytkownika za pomocą narzędzia CasperJS (336)
- Podsumowanie (337)
Skorowidz (339)
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-3612-4 |
Rozmiar pliku: | 4,1 MB |