Hello, world!
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
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
Tempo de espera
Ponto de vista, o problema das arquiteturas
bloqueantes
E o Twisted(python)? e o Event
Machine(ruby)?
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.
Alternativa

Trabalhar com multi-threading pattern

Requer investimento para escalar verticalmente, gerando
custo adicionais de hardware para manter o sistema.
O que é o
O que é o nodejs?
Event-drive I/O framework para
o v8 JavaScript engine do
Google Chrome.
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).
Demonstração
Command-line REPL(READ,EVAL,PRINT,
LOOP [LER, AVALIAR, IMPRIMIR, 'LOOP']);
Event loop
Arquitetura(modelo-simples)
Assíncrono x Síncrono
=> Event emitter pattern para simplificar o
Event-drive programming style;
=> Callback pattern;
Assíncrono x Síncrono
=>Demonstração callback Hell!
Assíncrono x Síncrono
Promisses
Promisses
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)
Deploy
Heroku,
Openshift,
Modules,
Digital Ocean e etc...
Node package manager
Instalar dependênica(módulos) de terceiros (third-part)
Gerenciar versões do node
Gerenciar dependências locais e globais.
Workshop
https://www.sympla.com.br/hands-on-nodejs---aprenda-a-usar-
nodejs-na-pratica__32096
Será dia 06 de junho no Cafufa de 9h às 18h do básico ao
deploy!
Os 10 primeiros inscritos receberão 40% de desconto, cupon
promocional: MAJSGROUP
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;
process.exit(1);
//Muito obrigado!

GDG NodeJS Sem Segredos