Este documento discute Node.js, incluindo o que é, por que usar, e por que não usar. Apresenta Node.js como uma plataforma baseada em eventos e I/O não bloqueante construída sobre a engine V8 do Google Chrome. Também discute como Node.js lida com I/O de maneira assíncrona e não bloqueante usando loops de eventos.
4. Motivação
Vergonha na cara !!!
Ter mais uma ferramenta disponível
Ir contra ao aceitável - Quem não sabe não reclama
Aprender JavaScript - ;(
5. O que é esse tal de Node.js ?
Modelo orientado a Eventos e non-blocking I/O
Plataforma construída sobre a engine V8 do Google Chrome
Single-Thread - Event-loop
6. O que é esse tal de Node.js ?
Outras plataformas bloqueiam o processo enquanto
utilizam i/o
para tentar amenizar podemos utilizar thread, mas a
thread ainda assim fica bloqueada enquanto espera o i/o
Cada requisição do usuário abre uma nova thread, que é
enfileirada para utilizar uma a uma o i/o. (tempo ocioso
mantendo a fila enquanto executa um i/o)
7. O que é esse tal de Node.js ?
JavaScript V8 - Google Chrome
Interpretador feito em C++
JavaScript
EventLoop Chrome V8
libuv
assinc. I/O
(multi
plataforma)
Sistema
Operacional
App
Node.js
8. O que é esse tal de Node.js ?
Single-Thread - Event loop
Single thread - apenas um único processo instanciado
Não é multi-thread (da para fazer concorrência com
módulo cluster)
não tem paralelismo mas tem recurso assíncrono
EventLoop - baseado (quero) no event machine do ruby e
twisted do python
loop infinito com mecanismo de escutar e notificar a fila
de eventos através de callback
9. O que é esse tal de Node.js ?
Eventos ?
jQuery
Node.js
10.
11. Por que eu usaria Node.js ?
“Quem não sabe não reclama.”
Resolver problemas de I/O bloqueante
Comunicação em tempo real (Chat, Gráficos, …)
Pequenas API acessando banco de dados
Minimalista
CSS / javascript / XML / JSON / DB / NoSql ….. + Node.js
14. Mãos na Massa
npm - Node Packaged Modules
package.json
Express
MVC
Testes
15. Por que eu não devo usar Node.js ?
JavaScr ipt !!!
16. Por que eu não devo usar Node.js ?
JavaScript - Everywhere
a mesma linguagem JavaScript do client-side
17. Por que eu não devo usar Node.js ?
“Se você tem que escrever um bom código, Tem que ser
no html.
Não quero nem saber do seu ruby, php, asp.net, java, ou
sei lá o que você escreve !
Se a gente tem que escrever coisa boa, escreva bom
html"