Node.js

Tworzenie aplikacji opartych na programowaniu sterowanym zdarzeniami.
Platforma pozwalająca uruchomić kod JavaScript poza przeglądarką.

Czym dokładnie jest Node.js

Node.js jest platformą która umożliwia uruchomienie kodu JavaScript. Platforma udostępnia API, którego najszerszym zastosowaniem jest tworzenie stron internetowych opartych na programowaniu sterowanym zdarzeniami. Poza samą możliwością uruchomienia skryptów JavaScript w środowisku innym niż przeglądarka, platforma oferuje wiele modułów stanowiących potężny zestaw narzędzi programistycznych.

Charakterystyka

  • Asynchroniczność. W architekturze programowania sterowanego zdarzeniami czas występowania zdarzeń oraz ich kolejność nie są określone. Pojawiające się zdarzenia są obsługiwane kiedy tylko dostępne są wolne zasoby. Takie podejście skutkuje lepszym wykorzystaniem zasobów oraz większą separacją kodu i luźnym powiązaniem komponentów (loose coupling).
  • Unifikacja kodu po stronie klienta i serwera. Używanie tego samego języka programowania po obu stronach połączenia pozwala uniknąć koniecznego w innych wypadkach duplikowania logiki fragmentów aplikacji.
  • V8 czyli otwarty silnik JavaScript stworzony na potrzeby Google Chrome. Silnik nie interpretuje kodu JavaScript w czasie rzeczywistym, a kompiluje kod do kodu maszynowego, co zwiększa wydajność. Następnie ma miejsce proces optymalizacji wykonania między innymi przez usuwanie “martwego” kodu, czy przewidywanie rozgałęzień wykonania pętli. Zarządzaniem pamięcią zajmuje się wydajny odśmiecacz.
  • npm – menadżer pakietów dla node.js używany do instalacji rozszerzeń. node.js rozwija się bardzo dynamicznie – obecnie npm zawiera ponad 250 tys. pakietów, a ich liczba wciąż rośnie.

Jako asynchroniczne środowisko JavaScript, Node.js został zaprojektowany do tworzenia skalowalnych aplikacji sieciowych. W poniższym przykładzie „hello world” wiele połączeń może być obsługiwanych jednocześnie. Przy każdym połączeniu uruchamiany jest callback, ale jeśli nie będzie żadnej pracy do wykonania, Node.js przejdzie w tryb uśpienia.

Jest to kontrast do dzisiejszego popularnego modelu współbieżności, w którym wykorzystywane są wątki systemu operacyjnego. Sieci oparte na wątkach są stosunkowo nieefektywne i bardzo trudne w użyciu. Ponadto użytkownicy Node.js są wolni od martwienia się o całkowite zablokowanie procesu, ponieważ nie ma blokad. Prawie żadna funkcja w Node.js nie wykonuje bezpośrednio operacji I/O, więc proces nigdy nie blokuje. Ponieważ nic nie blokuje, budowanie systemów skalowania jest bardziej rozsądne w Node.js.


Kilka firm, których aplikacje zostały napisane przy użyciu Node.js

Netflix
PayPal
Trello
Linkedin
CapitalOne
yahoo!
Mozilla
Uber

Jeżeli masz ochotę dowiedzieć się więcej na temat Node.js lub potrzebujesz wsparcia w swoim projekcie przy pomocy tego rozwiązania – napisz do nas przez formularz kontaktowy.