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