YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
Page 1: Node.js for Noobs

Node.js for noobsCaio Ribeiro Pereira

crpwebdev.com

Page 2: Node.js for Noobs

About me

Web Developer (Entusiasta JS)

Blogger (udgwebdev.com)

Escritor (Casa do Código)

Page 3: Node.js for Noobs

O que vamos ver?

Node.js

Big players

NPM (Node Package Manager)

Socket.IO

Microblog realtime na prática

Page 4: Node.js for Noobs
Page 5: Node.js for Noobs

nodejs.org

Page 6: Node.js for Noobs

Características do Node.js

Plataforma web/mobile/desktop

JavaScript Server-side

Non-blocking I/O

Programação Async e Sync

Desenvolvimento modular

Page 7: Node.js for Noobs

Sobre a plataformaCompatível nativamente:

HTTP/HTTPS

TCP/UDP

DNS

WebSockets

E muito mais via módulos 3rd-party!

Page 8: Node.js for Noobs

JavaScript V8 + Server-side = Node.js

Node.js usa motor JavaScript V8, o mesmo usado no Google Chrome

Page 9: Node.js for Noobs

Non-Blocking I/O

Node.js roda em single-thread

Não existe dead-locks

Execução de I/O é não-blocante

Funções async são não-blocante

Page 10: Node.js for Noobs

Non-blocking vs Blocking

Exemplo de I/O blocante

Page 11: Node.js for Noobs

Non-blocking vs Blocking

Exemplo de I/O não blocante

Page 12: Node.js for Noobs

Programação Async

Event-loop é o mecanismo para processamento async no Node.js

Page 13: Node.js for Noobs

Big players

Page 14: Node.js for Noobs
Page 15: Node.js for Noobs

npmjs.org

Page 16: Node.js for Noobs

Node Package Manager

Gerenciador de dependências

+170k de módulos Node.js

+20 milhões de downloads por dia!

Integrado no Node.js desde versão 0.6.0

Page 17: Node.js for Noobs

Principais comandos npm

npm init - Cria um package.json

npm install <módulo> - instala um módulo

npm remove <módulo> - remove um módulo

npm update <módulo> - atualiza um módulo

Mais comandos do npm https://docs.npmjs.com

Page 18: Node.js for Noobs

Anatomia do package.json

{ “name”: “nome-do-modulo”, “description”: “descricao do modulo”, “version”: “1.0.0”, “author”: “Nome <email>”, “dependencies”: { "moduloX": "1.0.0", "moduloY": "2.0.0" }

}

Page 19: Node.js for Noobs
Page 20: Node.js for Noobs

Socket.IOWrapper do protocolo WebSocket

Comunicação bidirecional (realtime)

Comunicação via eventos

Faz fallback em browsers antigos

FlashSocket

Ajax Long-Pooling

Para instalar: npm install socket.io

Page 21: Node.js for Noobs

Microblog realtime na prática

github.com/caio-ribeiro-pereira/microblog

Page 22: Node.js for Noobs

Perguntas?

Page 23: Node.js for Noobs

Thanks :)


Related Documents