Node.js – Serverside Javascript

  • View
    35

  • Download
    0

Embed Size (px)

DESCRIPTION

Node.js – Serverside Javascript. Maciej Jastrzębski. Czym jest Node.js Into the code Asynchroniczne I/O i Event Driven server Wydajność?! Node.js vs obecne rozwiązania. cross-platform & cross-device Client side. PaaS. SaaS. IaaS. cross-platform & cross-device Client side. - PowerPoint PPT Presentation

Text of Node.js – Serverside Javascript

wzorzec

Node.js Serverside JavascriptMaciej Jastrzbski

Krakw, 8 padziernika 2011nazwisko Czym jest Node.js Into the code Asynchroniczne I/O i Event Driven server Wydajno?! Node.js vs obecne rozwizania

2

cross-platform & cross-deviceClient sidePaaSSaaSIaaSKim jestem czym si zajmuje w kontekcie nowego onetu

+Rysunek chmury+Amazon+Standardy+od 2012 ruszamy

+server brzegowy

3

cross-platform & cross-deviceClient sidePaaSSaaSIaaSKim jestem czym si zajmuje w kontekcie nowego onetu

+Rysunek chmury+Amazon+Standardy+od 2012 ruszamy

+server brzegowy

4Czym jest Node.js?Wprowadzenie do node.jsco to jestOpensourceKiedy ruszyl projekt 2009 Ryan Dahl

Bazuje na Google v8 CommonJsModuy

Czym jest Node.jsV8Wprowadzenie do node.jsco to jestBazuje na Google v8 wiecej o v8 i o wojnie silnikw (z czego mamy bonus w postaci predkosci)

6rodowisko Node.js V8 runtime (EcmaScript5) Event Driven i Asynchroniczne I/O process zamiast window! System moduw i require (CommonJS) Zestaw moduw natywnych Wsparcie dla dodatkw opartych o C/C++

Co dostajemy

Brak Window!!!! w tym DOM za to mamy process

Require i moduy idea CommonJS

Moduy natywne

7File systemvar fs = require('fs');

//synchronicznievar content = fs.readFileSync('example.txt');

//asynchroniczniefs.readFile('example.txt', function (err, data) { if (err) throw err; console.log(data);});

Przykad asynchroniczne io filesystemPrzykad moduu

8Servervar http = require('http');var url = require('url');

var status = "none";

http.createServer(function (req, res) { //ustawiamy nowy status var params = url.parse(req.url, true); if(params.hasOwnProperty('set_status')){ status = params['set_status']; } //zwracamy aktualny status res.writeHead(200, {'Content-Type': 'text/plain'}); res.end(status);}).listen(80, "127.0.0.1");EventDriven IO - serverside

9setTimeout raz jeszcze.setTimeout(function(){ //pobierz dane z miejsca A}, 3000);

setTimeout(function(){ //pobierz dane z miejsca B}, 8000);EventDriven IO - serverside

10Nowy wymiar asynchronicznoci Javascript. Asynchroniczno JS i rodowisko backendoweEvent driven programingAsynchroniczne IOJeden wtek podkreli znaczenieKonkurencjaAsynchroniczno waniejsza ni kiedykolwiek - operacje blokujce- to jakby nagle w przegldarce pojawio si 1000 niezaleznych kursorw i wszystkie zaczey klika

Asynchroniczne I/O

Node.js ServerGET http://example.com/index.html

KolejkaExecGET http://example.com/hello.htmlRysunek

12Asynchroniczne I/O

Node.js Server

KolejkaExecRysunek

13Asynchroniczne I/O

Node.js Server

KolejkaExecRysunek

14Asynchroniczne I/O

Node.js Server

KolejkaExecRysunek

15Asynchroniczne I/O

Node.js Server

HTTP/1.1 200 OKKolejkaExecRysunek

16Asynchroniczne I/O

Node.js Server

KolejkaExecRysunek

17Asynchroniczne I/O

Node.js ServerHTTP/1.1 200 OK

KolejkaExecRysunek

18Nowy wymiar asynchronicznoci Javascript. to jakby nagle w przegldarce pojawio si 1000 niezaleznych kursorw i wszystkie zaczey klika

Wydajno!Wydajno test/wykres

Test Strona z dat (apache php/ apache python/ node.js)Fibonacci (node 4sec, pypy 6sec, py 64sec, php 110sec)20Komercyjne zastosowanie i due projekty. Node.js i Enterprise (krytyka)

Abstrachowanie od samej skadni JS i zastosowa w projektach wielo osobowychBrak kompleksowych rozwiza jak np. dla J2EETylko podstawowe narzdzia do pracy z OSrednia jako api (subiektywne)npmjs.orgAle

AleAktualnie w npmie mamy4261 total packages

W tym ciekawe z perspektywy frontend JSDOM czy node-yui

Doda logotypy!!!!22Zapraszamy!Blog:http://it.blog.onet.pl/

BlogWsppraca23Dzikuj za uwag.hr