47
A explosão do Node.js JavaScript é o novo preto Nando Vieira

A explosão do Node.js: JavaScript é o novo preto

Embed Size (px)

Citation preview

Page 1: A explosão do Node.js: JavaScript é o novo preto

A explosão do Node.jsJavaScript é o novo preto

Nando Vieira

Page 2: A explosão do Node.js: JavaScript é o novo preto

Sobre mim.@fnandohttp://nandovieira.com.br

Page 3: A explosão do Node.js: JavaScript é o novo preto
Page 4: A explosão do Node.js: JavaScript é o novo preto

SIMPLESIDEIAS.COM.BR

Page 5: A explosão do Node.js: JavaScript é o novo preto

codeplane.com.br

Page 6: A explosão do Node.js: JavaScript é o novo preto

howtocode.com.br

Page 7: A explosão do Node.js: JavaScript é o novo preto
Page 8: A explosão do Node.js: JavaScript é o novo preto
Page 9: A explosão do Node.js: JavaScript é o novo preto

Standard library.Timers, Process, Events, Util, Buffer, Crypto, TLS/SSL, FileSystem, Net, DNS, HTTP/HTTPS, URL, UDP.

Page 10: A explosão do Node.js: JavaScript é o novo preto

Ecossistema.O Node.js é novo, mas já tem muita coisa.

Page 11: A explosão do Node.js: JavaScript é o novo preto

Database.Mysql, Redis, MongoDB, CouchDB.

Page 12: A explosão do Node.js: JavaScript é o novo preto

HTTP.Connect e Express.

Page 13: A explosão do Node.js: JavaScript é o novo preto

Templating.Jade, EJS, Haml, Sass.

Page 14: A explosão do Node.js: JavaScript é o novo preto

Realtime.módulo net, Socket.IO, Now.js, Faye.

Page 15: A explosão do Node.js: JavaScript é o novo preto

Deploy.No.de, Nodester, Nodejitsu, Duostack, Heroku, Cluster, Upstart/init.d.

Page 16: A explosão do Node.js: JavaScript é o novo preto

var http = require("http");

http.createServer(function (request, response) { response.end("Hello TDC 2011!\n");}).listen(2345);

Servidor HTTP - Node.js

Page 17: A explosão do Node.js: JavaScript é o novo preto

var net = require("net") , emitter = new process.EventEmitter();

net.createServer(function(socket){ emitter.on("message", function(sender, message){ if (socket.writable) { socket.write(socket.remoteAddress + "> " + message); } });

socket.on("data", function(data){ emitter.emit("message", socket, data) });}).listen(2345, "kernelpanic.local");

Chat TCP

Page 18: A explosão do Node.js: JavaScript é o novo preto
Page 19: A explosão do Node.js: JavaScript é o novo preto

Presentta.Um sistema de treinamento online.

Page 20: A explosão do Node.js: JavaScript é o novo preto
Page 21: A explosão do Node.js: JavaScript é o novo preto

Um monte de coisas.Node.js + Ruby + Rails + Flash + Linux + Erlang + WebSockets.

Page 22: A explosão do Node.js: JavaScript é o novo preto

Navegação de slides

MicrofonesQualidade do

Áudio

Ativa screensharing !"#$

Page 23: A explosão do Node.js: JavaScript é o novo preto

Flash.Streaming de áudio e vídeo.

Page 24: A explosão do Node.js: JavaScript é o novo preto

Comunicação.Protocolo JSON.

Page 25: A explosão do Node.js: JavaScript é o novo preto

JSON.stringify({ type: "new_message", message: "My new message", user: 1});

Page 26: A explosão do Node.js: JavaScript é o novo preto

JSON.load(payload);

Page 27: A explosão do Node.js: JavaScript é o novo preto

JavaScript.Closures, funções anônimas eescopo de variáveis.

Page 28: A explosão do Node.js: JavaScript é o novo preto

Escopo de variáveis.

Page 29: A explosão do Node.js: JavaScript é o novo preto

var someVariable = "global variable!";

console.log(someVariable); // global variable

function someFunction() { console.log(someVariable); // global variable}

someFunction();

Escopo de variáveis

Page 30: A explosão do Node.js: JavaScript é o novo preto

var someVariable = "global variable!";

console.log(someVariable); // global variable

function someFunction() { var someVariable = "local variable"; console.log(someVariable); // local variable}

someFunction();

Escopo de variáveis

Page 31: A explosão do Node.js: JavaScript é o novo preto

var someVariable = "global variable!";

console.log(someVariable); // global variable

function someFunction() { var someVariable = "local variable"; console.log(someVariable); // local variable console.log(this.someVariable); // global variable}

someFunction();

Escopo de variáveis

Page 32: A explosão do Node.js: JavaScript é o novo preto

this.É o dono da função executada.

Page 33: A explosão do Node.js: JavaScript é o novo preto

function someFunction(){ return this;};

someFunction() === this;

Escopo de variáveis

Page 34: A explosão do Node.js: JavaScript é o novo preto

function someFunction(){ return this;};

var items = [];someFunction.call(items) === items;

Escopo de variáveis

Page 35: A explosão do Node.js: JavaScript é o novo preto

Função anônima.Função que foi definida sem um nome.

Page 36: A explosão do Node.js: JavaScript é o novo preto

function someFunction() { // your code}

someFunction.name; // "someFunction"

Funções anônimas

Page 37: A explosão do Node.js: JavaScript é o novo preto

var someFunction = function() { // your code};

someFunction.name; // ""

Funções anônimas

Page 38: A explosão do Node.js: JavaScript é o novo preto

setTimeout(function(){ // your code});

Funções anônimas

Page 39: A explosão do Node.js: JavaScript é o novo preto

(function(){ // your code})();

Funções anônimas

Page 40: A explosão do Node.js: JavaScript é o novo preto

http.createServer(function(req, res){ // add listeners}).listen(2345);

Funções anônimas

Page 41: A explosão do Node.js: JavaScript é o novo preto

Closures.Funções que guardam o escopo de variáveis quando foram definidas.

Page 42: A explosão do Node.js: JavaScript é o novo preto

var handlers = [];

for (var i = 0; i < 5; i++) { handlers.push(function(){ console.log(i);; });}

console.log(handlers.length); // 5handlers[0](); // 5handlers[1](); // 5

Closures

Page 43: A explosão do Node.js: JavaScript é o novo preto

var handlers = [];

function handler(number) { return function() { console.log(number); };}

for (var i = 0; i < 5; i++) { handlers.push(handler(i));}

handlers[0](); // 0handlers[1](); // 1

Closures

Page 44: A explosão do Node.js: JavaScript é o novo preto

var handlers = [];

for (var i = 0; i < 5; i++) { (function(number){ handlers.push(function(){ console.log(number); }); })(i);}

handlers[0](); // 0handlers[1](); // 1

Closures

Page 45: A explosão do Node.js: JavaScript é o novo preto

Entenda JavaScript.Node.js é fácil. JavaScript, nem tanto.

Page 46: A explosão do Node.js: JavaScript é o novo preto

Dúvidas?