Caio Cutrim é um entusiasta de Node.js e programador full-stack. Ele teve seu primeiro contato com programação web em 2007 e é auto-didata em informática e músico. O documento discute os problemas das arquiteturas bloqueantes em linguagens como Python, Java e PHP, e como Node.js resolve isso usando I/O não-bloqueante e event loop.
2. Caio Cutrim:
Entusiasta nodejs,
programador web ou full-stack developer.
Fundador do nodejsma, tive meu primeiro
contato com programação web em 2007 quando
saía do antigo ensino-médio.
Auto-didata, técnico em informática e músico nas
horas vagas.
http://facebook.com/nodejsma
http://github.com/caiocutrim
http://facebook.com/caio.cutrim.3
http://twitter.com/CaioCutrim1989
3.
4. Ponto de vista, o problema das arquiteturas
bloqueantes
Custo alto para manter,
Bloqueiam a execução do código quando fazem I/O ( por exemplo:
leitura em disco, query em data-base, envio de email e etc )
ex.:python, java, php, ruby e .net
6. Ponto de vista, o problema das arquiteturas
bloqueantes
E o Twisted(python)? e o Event
Machine(ruby)?
7. O problema das arquiteturas bloqueantes
E o Twisted(python)? E o Event
Machine(ruby)?
Requer conhecimento específico do framework e de suas bibliotecas.
Limitação de uso de bibliotecas assíncronas construídas especificamente
para o Event Machine.
O uso de bibliotecas bloqueantes no event-machine não habilita o servidor
de escalar da melhor forma, porque o event-loop vai está bloqueando
constantemente, isso impede temporariamente os processos de eventos de
I/O.
10. O que é o nodejs?
Event-drive I/O framework para
o v8 JavaScript engine do
Google Chrome.
11. Base filosófica.
'Non-block I/O' (Entrada/Saída não bloqueante),
Multiprotocolo (HTTP, DNS, TLS e etc...),
'Streaming everything', fácil manipulação de dados binário
com a abstração da classe Buffer.
Single thread, incialmente não é possível trabalhar em multi-
threading com o node (uma instância, uma thread), a não ser
que você use clusters(node core module, que permite a
criação de processos filhos que compartilham todas as
portas do servidor).
20. Principais frameworks e
ferramentas de teste
Express.js,
Jasmine
Karma(ambiente de teste com feedback instantâneo e Integração
descomplicada com Jenkis, Travis ou Semaphore)
24. Referências:
Professional Nodejs, autor: Manuel Kiessling
Palestra Javascript com google v8 no servidor, autor : Luciano
Ramalho (web desde 1994, programador desde 1982)
Node doc : http://node.org/
Node br : http://nodebr.com/
Aplicações web real-time com nodejs, autor: Caio Ribeiro
MEAN-FULL-STACK, autor: Flávio Almeida;