Node.js. Projektowanie, wdrażanie i utrzymywanie aplikacji - Helion
Tytuł oryginału: Deploying Node.js
Tłumaczenie: Rafał Jońca
ISBN: 978-83-283-3610-0
stron: 232, Format: ebook
Data wydania: 2017-10-22
Księgarnia: Helion
Cena książki: 27,45 zł (poprzednio: 54,90 zł)
Oszczędzasz: 50% (-27,45 zł)
W ciÄ…gu kilku ostatnich lat JavaScript staÅ‚ siÄ™ niezwykle wszechstronnym i wydajnym jÄ™zykiem programowania. Dla programistów kodujÄ…cych w tym jÄ™zyku Å›wietnym narzÄ™dziem okazuje siÄ™ platforma Node.js. Ten framework open source zostaÅ‚ zaprojektowany do tworzenia skalowalnych aplikacji internetowych, jednak umożliwia też tworzenie aplikacji sterowanych zdarzeniami. Użytkownicy docenili jego wygodÄ™. Node.js odniósÅ‚ spory sukces i staÅ‚ siÄ™ kluczowym narzÄ™dziem programistycznym w wielu firmach. Mimo to odnalezienie wyczerpujÄ…cych informacji o profesjonalnym projektowaniu, testowaniu i wdrażaniu oprogramowania za jego pomocÄ… jest dość trudne.
Niniejsza książka zawiera opis technik i narzÄ™dzi pozwalajÄ…cych na wykonanie w Node.js elastycznej, inteligentnej, trwaÅ‚ej i Å‚atwej w utrzymaniu aplikacji o znakomitej jakoÅ›ci. Poza podstawami zaprezentowano tu również zestaw wzorców uÅ‚atwiajÄ…cych rozwiÄ…zywanie typowych problemów pojawiajÄ…cych siÄ™ w dzisiejszych projektach. Nie zabrakÅ‚o licznych przykÅ‚adów z życia oraz wskazówek, które doceni każdy, kto musi sprawnie wdrożyć trudny projekt. Książka umożliwia zgÅ‚Ä™bienie tajników Node.js i naukÄ™ projektowania moduÅ‚owego. Sporo miejsca poÅ›wiÄ™cono też testowaniu i monitorowaniu aplikacji oraz strategiom utrzymania aplikacji przez wiÄ™kszy zespóÅ‚.
Najważniejsze zagadnienia:
- mocne i słabe strony Node.js
- techniki skalowania aplikacji i komunikacja międzyprocesowa
- zarządzanie pamięcią i monitorowanie sesji
- właściwe budowanie potoku tworzenia aplikacji
- konserwacja systemu i strategie zarządzania zależnościami
Node.js: dojrzała technologia, znakomita wydajność i wszechstronność!
Sandro Pasquali — programista, przedsiÄ™biorca, twórca firmy technologicznej Simple.com, która sprzedawaÅ‚a pierwszy na Å›wiecie framework aplikacyjny oparty na jÄ™zyku JavaScript. Obecnie autor szkoli zespoÅ‚y programistów korporacyjnych. W swoim czasie zarzÄ…dzaÅ‚ projektowaniem wielu aplikacji dla takich firm jak Nintendo, Major League Baseball, LimeWire, AppNexus i Conde Nast, a także dla instytutów badawczych i szkóÅ‚. Zawsze szuka nowych sposobów na poÅ‚Ä…czenie doskonaÅ‚oÅ›ci projektowej z innowacyjnÄ… technologiÄ….
Osoby które kupowały "Node.js. Projektowanie, wdrażanie i utrzymywanie aplikacji", wybierały także:
- D3.js w akcji 67,42 zł, (20,90 zł -69%)
- Tablice informatyczne. Node.js 16,86 zł, (5,90 zł -65%)
- React i GatsbyJS. Kurs video. Nowoczesne strony internetowe w oparciu o headless CMS i GraphQL 148,98 zł, (59,59 zł -60%)
- TypeScript i React. Kurs video. Tworzenie nowoczesnych komponent 129,00 zł, (51,60 zł -60%)
- Vue.js w praktyce. Kurs video. Poznaj narz 148,98 zł, (59,59 zł -60%)
Spis treści
Node.js. Projektowanie, wdrażanie i utrzymywanie aplikacji eBook -- spis treści
O autorze (9)
O redaktorach merytorycznych (11)
Wstęp (13)
- Zawartość książki (14)
- NarzÄ™dzia potrzebne do realizacji przykÅ‚adów (15)
- Do kogo kierowana jest książka? (15)
- Konwencje typograficzne (16)
- Przykładowy kod (16)
Rozdział 1. Docenić Node (17)
- Unikatowo zaprojektowany Node (18)
- WspóÅ‚bieżność (20)
- RównolegÅ‚ość i wÄ…tki (21)
- WspóÅ‚bieżność i procesy (23)
- Zdarzenia (24)
- Pętla zdarzeń (26)
- WpÅ‚yw sposobu zaprojektowania Node na architektów systemów (30)
- Budowanie wiÄ™kszych systemów z mniejszych (30)
- Strumienie (32)
- Wykorzystanie JavaScript na każdym etapie projektu maksymalizuje dobre efekty (33)
- Zamiana kodu (34)
- Browserify (34)
- Podsumowanie (35)
RozdziaÅ‚ 2. Instalacja i wirtualizacja serwerów Node (37)
- Uruchamianie podstawowego serwera Node (38)
- Witaj, świecie (38)
- Tworzenie żądań HTTP (39)
- Pośredniczenie i tunelowanie (40)
- HTTPS, TLS (SSL) i zabezpieczanie serwera (42)
- Tworzenie podpisanego samodzielnie certyfikatu na potrzeby programistyczne (42)
- Instalacja prawdziwego certyfikatu SSL (43)
- Instalacja aplikacji w chmurze Heroku (44)
- Dodatki (46)
- Git (46)
- ZarzÄ…dzanie zmiennymi konfiguracyjnymi (49)
- Zarządzanie wdrożeniem (50)
- Instalacja aplikacji w chmurze OpenShift (51)
- Instalacja aplikacji Node i MongoDB (52)
- Wdrożenie aplikacji (52)
- Docker, czyli lekkie i wirtualne kontenery (54)
- Najpierw jednak Å‚yk systemu Unix (56)
- Korzystanie z systemu Docker (57)
- Tworzenie pliku Dockerfile (58)
- Zbudowanie i uruchomienie obrazu Dockera (59)
- Podsumowanie (61)
Rozdział 3. Skalowanie Node (63)
- Skalowanie pionowe wykorzystujÄ…ce wiele rdzeni procesora (64)
- Funkcja spawn() (65)
- Funkcja fork() (68)
- Funkcja exec() (70)
- Funkcja execFile() (71)
- Komunikacja z procesem potomnym (71)
- Moduł cluster (73)
- Skalowanie w poziomie z wykorzystaniem wielu maszyn (77)
- Użycie serwera Nginx (77)
- Równoważenie obciążenia za pomocÄ… Node (85)
- Użycie kolejek komunikatów (87)
- Użycie modułu komunikacji UDP serwera Node (91)
- Podsumowanie (96)
Rozdział 4. Zarządzanie pamięcią i przestrzenią (97)
- Jak poradzić sobie z dużym tłumem? (98)
- Mikroserwisy (98)
- Mechanizm pub-sub serwera Redis (99)
- Mikroserwisy w narzędziu Seneca (102)
- Zmniejszenie zużycia pamięci (105)
- Używaj strumieni zamiast buforów (106)
- Prototypy (107)
- Wydajne pamięciowo struktury danych z wykorzystaniem serwera Redis (109)
- V8 i optymalizacja wydajności (116)
- Optymalizacja kodu JavaScript (116)
- Strategie dotyczące pamięci podręcznych (121)
- Wykorzystanie Redis jako pamięci podręcznej (121)
- Wdrażanie CloudFlare jako CDN (125)
- Zarządzanie sesją użytkownika (127)
- Uwierzytelnianie i sesje JWT (127)
- Podsumowanie (131)
Rozdział 5. Monitorowanie aplikacji (133)
- Jak poradzić sobie z błędami? (134)
- Moduł domain (135)
- WyÅ‚apywanie bÅ‚Ä™dów innych procesów (137)
- Tworzenie dzienników zdarzeÅ„ (140)
- Dostosowywanie działania w zmieniającym się środowisku (144)
- REPL narzędzia Node (144)
- Zdalny monitoring i zarzÄ…dzanie procesem Node (146)
- Profilowanie procesów (149)
- Wykorzystywanie niezależnych narzędzi do monitorowania (152)
- PM2 (152)
- Wykorzystanie New Relic do monitorowania aplikacji (156)
- Podsumowanie (158)
Rozdział 6. Budowanie i testowanie (159)
- Budowanie aplikacji za pomocą narzędzi Gulp, Browserify i Handlebars (160)
- Narzędzie Gulp (160)
- Wykonanie szkieletu systemu budowania (163)
- Uruchamianie i testowanie zbudowanej wersji (169)
- Wykorzystanie narzędzi do testowania wbudowanych w system Node (171)
- Debuger wbudowany w system Node (172)
- Moduł assert (175)
- Testowanie za pomocÄ… Mocha, Chai, Sinon i npm (177)
- Mocha (178)
- Chai (180)
- Sinon (181)
- Automatyzacja testów w przeglÄ…darce internetowej dziÄ™ki PhantomJS i CasperJS (187)
- Testowanie z wykorzystaniem PhantomJS (187)
- Scenariusze nawigacyjne w CasperJS (189)
- Podsumowanie (192)
Rozdział 7. Wdrażanie i konserwacja (193)
- GitHub i mechanizm webhook (194)
- WÅ‚Ä…czenie mechanizmu webhook (195)
- Implementacja systemu budowania i wdrażania wykorzystującego mechanizm webhook (198)
- Synchronizacja wersji lokalnej i zdalnej (201)
- Tworzenie wersji lokalnej za pomocą narzędzia Vagrant (201)
- Przygotowywanie systemu przy użyciu Ansible (205)
- Integracja, dostarczanie i wdrażanie (208)
- Ciągła integracja (208)
- Ciągłe dostarczanie (208)
- Ciągłe wdrażanie (209)
- Budowanie i wdrażanie z użyciem narzędzia Jenkins (209)
- Wdrażanie w chmurze Heroku (213)
- ZarzÄ…dzanie pakietami (216)
- Wersjonowanie semantyczne (216)
- Zarządzanie pakietami z użyciem npm (218)
Skorowidz (225)