Node.js
Transkrypt
Node.js
Node.js Wprowadzenie Node.js to znak handlowy Joyent, Inc. Rafał Wileczek Uczy, programuje, czyta książki (Tolkien), słucha muzyki (Iron Maiden), ogląda filmy, a czasem, w przypływie weny i ataku cierpliwości, pisze o programowaniu. Kontakt: • wileczek.net • Twitter: @rafalw Node.js – co to jest? Agenda • Co powoduje, że Node.js jest wyjątkowe (lub inaczej: jak to działa)? • Jak zainstalować? • DEMO 1: Hello world! (na dwa sposoby ;-)) • DEMO 2: Operacje synchroniczne (blokujące) i asynchroniczne (nieblokujące) • DEMO 3: Serwer WWW… A może aplikacja WWW? • DEMO 4: Publiczny timeline z Twittera • Przymiarki do testów wydajnościowych • Podsumowanie oraz Q&A Kilka przyczyn wyjątkowości Node.js, czyli jak to w ogóle może działać? zdarzenia (pętla zdarzeń) nieblokujące operacje wejścia-wyjścia funkcje „zwrotne” (callback) pełna integracja z usługami internetu oszczędność zasobów niskopoziomowość Server Side JavaScript Google V8 JavaScript engine (Chrome) łatwość programowania Agenda • Co powoduje, że Node.js jest wyjątkowe (lub inaczej: jak to działa)? • Jak zainstalować? • DEMO 1: Hello world! (na dwa sposoby ;-)) • DEMO 2: Operacje synchroniczne (blokujące) i asynchroniczne (nieblokujące) • DEMO 3: Serwer WWW… A może aplikacja WWW? • DEMO 4: Publiczny timeline z Twittera • Przymiarki do testów wydajnościowych • Podsumowanie oraz Q&A Instalacja • http://nodejs.org/#download • Środowisko natywne: *nix • Dostępne wersje instalacyjne dla Windows i MacOS • Aktualna wersja stabilna: 0.6.2 • Menedżer pakietów npm – bezboleśnie tylko w *niksach (Mac?). Agenda • Co powoduje, że Node.js jest wyjątkowe (lub inaczej: jak to działa)? • Jak zainstalować? • DEMO 1: Hello world! (na dwa sposoby ;-)) • DEMO 2: Operacje synchroniczne (blokujące) i asynchroniczne (nieblokujące) • DEMO 3: Serwer WWW… A może aplikacja WWW? • DEMO 4: Publiczny timeline z Twittera • Przymiarki do testów wydajnościowych • Podsumowanie oraz Q&A DEMO 1 Hello world! – na co najmniej dwa sposoby DEMO 2 Operacje synchroniczne (blokujące) i asynchroniczne (nieblokujące) – odczyt zawartości plików i pobieranie danych z bazy DEMO 3 Bardziej rozbudowana aplikacja WWW (przykład na podstawie książki „The Node Beginner Book: A comprehensive Node.js tutorial” autorstwa Manuela Kiesslinga) DEMO 4 Strumień publiczny usługi Twitter (refaktoring przykładu z tutoriala „Learning Server-Side JavaScript with Node.js” Devona Govetta) Testy wydajnościowe (przymiarki) Testowane aplikacje: Testy wydajnościowe (przymiarki) - wyniki ApacheBench (AMD Phenom II x4, 4GB RAM, Ubuntu 10.04.3 64bit) Pierwszy test: ab –n 1000 –c 100 ‘adres_usługi’ Testy wydajnościowe (przymiarki) – wyniki c.d. ApacheBench (AMD Phenom II x4, 4GB RAM, Ubuntu 10.04.3 64bit) Drugi test: ab –n 7000 –c 700 ‘adres_usługi’ Podsumowanie http://nodejs.org Q & (o ile będę w stanie pomóc) A Dziękuję za uwagę! wileczek.net