Platforma Node.js. Przewodnik webdevelopera. Wydanie III - Helion
Tytuł oryginału: Node.js Web Development - Third Edition
TÅ‚umaczenie: Tomasz Walczak
ISBN: 978-83-283-3611-7
stron: 344, Format: 170x230, okładka: miękka
Data wydania: 2017-08-23
Księgarnia: Helion
Cena książki: 59,00 zł
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.
Osoby które kupowały "Platforma Node.js. Przewodnik webdevelopera. Wydanie III", wybierały także:
- Responsive i Bootstrap. Kurs video. Poziom pierwszy. Błyskawiczne tworzenie responsywnych serwisów WWW 89,00 zł, (35,60 zł -60%)
- Vue.js 2. Wprowadzenie dla profesjonalistów 99,00 zł, (49,50 zł -50%)
- Tablice informatyczne. Bootstrap 16,98 zł, (8,49 zł -50%)
- Platforma Node.js. Przewodnik webdevelopera. Wydanie III 58,98 zł, (29,49 zł -50%)
- Bootstrap. Praktyczne projekty 34,90 zł, (17,45 zł -50%)
Spis treści
Platforma Node.js. Przewodnik webdevelopera. Wydanie III -- 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)