gdg conf node js sem segredos

25
Hello, world!

Upload: caio-cutrim

Post on 30-Jul-2015

72 views

Category:

Internet


4 download

TRANSCRIPT

Page 1: GDG Conf Node JS sem segredos

Hello, world!

Page 2: GDG Conf Node JS sem segredos

Caio Cutrim:Entusiasta nodejs, programador web ou full-stack developer.Fundador do nodejsma, tive meu primeiro contato com programação web em 2007 quando saiu 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

Page 3: GDG Conf Node JS sem segredos
Page 4: GDG Conf Node JS sem segredos

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

Page 5: GDG Conf Node JS sem segredos

Assíncrono x Síncrono

ram

Ciclos de CPU

3

14

250

41.000.000

240.000.000

Cache l1

Cache l2

RAM

Disco

Rede

Page 6: GDG Conf Node JS sem segredos

Ponto de vista, o problema das arquiteturas bloqueantes

E o Twisted(python) e o Event Machine(ruby)?

Page 7: GDG Conf Node JS sem segredos

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.

Page 8: GDG Conf Node JS sem segredos

Alternativa

Trabalhar com multi-threading pattern Requer investimento para escalar verticalmente, gerando

custo adicionais de hardware para manter o sistema.

Page 9: GDG Conf Node JS sem segredos

O que é o

Page 10: GDG Conf Node JS sem segredos

O que é o nodejs?

Event-drive I/O framework para o v8 JavaScript engine do Google Chrome.

Page 11: GDG Conf Node JS sem segredos

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 toda as portas do servidor).

Page 12: GDG Conf Node JS sem segredos

Demonstração

Event loop

Event-emitter + event-listener Command-line REPL(READ,EVAL,PRINT,

LOOP [LER, AVALIAR, IMPRIMIR, 'LOOP']);

Page 13: GDG Conf Node JS sem segredos

Event loop

Page 14: GDG Conf Node JS sem segredos

Arquitetura(modelo-simples)

Runtime

Server

Javascript

NODEJS {

internet

Page 15: GDG Conf Node JS sem segredos

Assíncrono x Síncrono

=> Event emitter pattern para simplificar o Event-drive programming style;=> Callback pattern;

Page 16: GDG Conf Node JS sem segredos

Assíncrono x Síncrono

=>Demonstração callback Hell

Page 17: GDG Conf Node JS sem segredos

Assíncrono x Síncrono

Page 18: GDG Conf Node JS sem segredos

Promisses

Page 19: GDG Conf Node JS sem segredos

Promisses

Page 20: GDG Conf Node JS sem segredos

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)

Page 21: GDG Conf Node JS sem segredos

Deploy

Heroku, Openshift, Modules, Digital Ocean e etc...

Page 22: GDG Conf Node JS sem segredos

Node package manager

Instalar dependênica de terceiros (third-part) Gerenciar verções do node Gerenciar dependências locais e globais.

Page 23: GDG Conf Node JS sem segredos

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

Page 24: GDG Conf Node JS sem segredos

process.exit(1);//Muito obrigado!

Page 25: GDG Conf Node JS sem segredos

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;