1 / 15

Node.js – niskopoziomowe środowisko implementujące JavaScript po stronie serwera

Node.js – niskopoziomowe środowisko implementujące JavaScript po stronie serwera. Na podstawie: Tilkov , S., Vinoski , S., Node.js : Using JavaScript to Build High-Performance Network Programs [W:] Internet Computing , IEEE, 2010, t. 14, nr 6, s. 80-83. Łukasz Przywarty 171018

cadman-day
Download Presentation

Node.js – niskopoziomowe środowisko implementujące JavaScript po stronie serwera

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Node.js – niskopoziomowe środowisko implementujące JavaScript po stronie serwera Na podstawie: Tilkov, S., Vinoski, S., Node.js: UsingJavaScript to Build High-Performance Network Programs [W:] Internet Computing, IEEE, 2010, t. 14, nr 6, s. 80-83. Łukasz Przywarty 171018 Mariusz Kacała 171058

  2. Ramowy plan prezentacji • Node.js - informacje wstępne • Po co programistom node.js? • Właściwości node.js • Prosty serwer HTTP • Manager pakietów npm • Wielowątkowość a node.js • Kiedy korzystać, a kiedy nie korzystać z node.js 3/16

  3. Node.js– informacje wstępne • Data utworzenia: 2009 r. • Niskopoziomowa implementacja silnika V8 JavaScript’u po stronie serwera. • Napisany w języku C/C++ (8000 linii) oraz JavaScript (2000 linii), obsługuje programy napisane w JavaScript. 4/16

  4. Node.js– informacje wstępne c.d. • Obsługiwany zdarzeniami. • Nieblokujące i asynchroniczne operacje I/O oraz zapytania do bazy danych • Zalety: wydajność w obsłudze zdarzeń generowanych przez dużą liczbę użytkowników, małe zużycie pamięci. • Własny manager pakietów npm; liczne frameworki. 5/16

  5. Po co programistom node.js? • Apache i wątki - można łatwiej i wydajniej. • Zbyt skomplikowane rozwiązania: • Ruby Event Machine, • Python Twisted/Tornado, • Erlang (Facebook Chat). • Przewaga: dużo lepsza dostępność (JavaScript)i społeczność. 6/16

  6. Sterowanie zdarzeniami • Zdarzenie zamiast wątku. • Event-loop. 7/16

  7. Asynchroniczne operacje I/O • Nie wyjątek, a reguła. • Ważne dla programowania zdarzeniowego. • Powodują problemy. • W sytuacjach szczególnych (np. zmiana nazwy pliku) istnieją wyjątki od asynchroniczności. 8/16

  8. JavaScript po stronie serwera • Kolejny krok w stronę kompleksowego rozwiązania (ten sam język programowania dla frontend’u i backend’u) • JavaScript w zgodzie z filozofiąnode.js – wsparcie funkcji zwrotnych zdarzeń (eventcallback) 9/16

  9. Wielowątkowość z node.js • Jedennode.js – jeden proces. • Rozwiązanie: wiele instancji serwera node.js komunikujących się poprzez współdzielone gniazdkow systemie operacyjnym (200 linii kodu JavaScript) 10/16

  10. Prosty serwer HTTP varsys = require(“sys”), http = require(“http”), url = require(“url”), path = require(“path”), fs = require(“fs”); http.createServer(function(request, response) { varuri = url.parse(request.url).pathname; varfilename = path.join(process.cwd(), uri); path.exists(filename, function(exists) { if(exists) { fs.readFile(filename, function(err, data) { response.writeHead(200); response.end(data); }); } else { response.writeHead(404); response.end(); } }); }).listen(8080); sys.log(“Server runningat http://localhost:8080/”); 11/16

  11. Manager pakietów npm • Bogaty ekosystem framework’ów. • Ponad 16 300 pakietów. • Najpopularniejsze: • ExpressJs – framework dla aplikacji webowych, • Socket.io – serwer WebSocket dla node.js (aplikacje czasu rzeczywistego), • Redis – serwer ‘struktur danych’, • Coffee – język kompliowany do JavaScript. 12/16

  12. Interesujące pakiety w npm • Nodecopter – biblioteka do sterowania modelem śmigłowca. • Noduino – framework obsługujący podstawowe podzespoły Ardunio przez sieć. 13/16

  13. Kiedy korzystać z node.js? • Deweloper znający język JavaScript. • Aplikacje czasu rzeczywistego (np. Twitter, relacjez wydarzeń sportowych etc.). • JSON/ Rest API dla aplikacji sieciowych. • Aplikacje składające się ‘jednej podstrony' (np. Gmail). • Przesyłanie danych. 14/16

  14. Kiedy nie korzystać z node.js? • Aplikacje korzystające z dużej ilości zasobów CPU. • Proste aplikacje typu CRUD. • Gdy istnieje potrzeba skorzystania z bibliotekiw konkretnym języku. 15/16

  15. Node.js – niskopoziomowe środowisko implementujące JavaScript po stronie serwera Na podstawie: Tilkov, S., Vinoski, S., Node.js: UsingJavaScript to Build High-Performance Network Programs [W:] Internet Computing, IEEE, 2010, t. 14, nr 6, s. 80-83. Łukasz Przywarty 171018

More Related