SlideShare uma empresa Scribd logo
1 de 25
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!

Mais conteúdo relacionado

Mais procurados

Faça seu próprio servidor pirata com OpenVZ
Faça seu próprio servidor pirata com OpenVZFaça seu próprio servidor pirata com OpenVZ
Faça seu próprio servidor pirata com OpenVZRicardo Bánffy
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoEduardo Bohrer
 
Detalhes internos da nova JVM do Java 8 @mariofts
Detalhes internos da nova JVM do Java 8   @marioftsDetalhes internos da nova JVM do Java 8   @mariofts
Detalhes internos da nova JVM do Java 8 @marioftsMario Amaral
 
A explosão do Node.js: JavaScript é o novo preto
A explosão do Node.js: JavaScript é o novo pretoA explosão do Node.js: JavaScript é o novo preto
A explosão do Node.js: JavaScript é o novo pretoNando Vieira
 
Desmistificando um Ambiente de Desenvolvimento WEB com Vagrant
Desmistificando um Ambiente de Desenvolvimento WEB com VagrantDesmistificando um Ambiente de Desenvolvimento WEB com Vagrant
Desmistificando um Ambiente de Desenvolvimento WEB com VagrantLuis Henrique Costa
 
Apresentação VRaptor 3
Apresentação VRaptor 3Apresentação VRaptor 3
Apresentação VRaptor 3Alabê Duarte
 
TDC2010 - Trilha Python: Python no iG (Automação de Datacenters)
TDC2010 - Trilha Python: Python no iG (Automação de Datacenters)TDC2010 - Trilha Python: Python no iG (Automação de Datacenters)
TDC2010 - Trilha Python: Python no iG (Automação de Datacenters) iG - Internet Group do Brasil S/A
 
Introducão ao Grok - PyConBrasil 3
Introducão ao Grok - PyConBrasil 3Introducão ao Grok - PyConBrasil 3
Introducão ao Grok - PyConBrasil 3Dirceu Pereira Tiegs
 
OpenLDAP, criando e explorando um overlay
OpenLDAP, criando e explorando um overlayOpenLDAP, criando e explorando um overlay
OpenLDAP, criando e explorando um overlayDiego Santos
 
Open ldap criando e explorando um overlay
Open ldap   criando e explorando um overlayOpen ldap   criando e explorando um overlay
Open ldap criando e explorando um overlayMarcelo Fleury
 
Hackeando facebook com wireshark e cookie injector
Hackeando facebook com wireshark e cookie injectorHackeando facebook com wireshark e cookie injector
Hackeando facebook com wireshark e cookie injectorAlvaro Gomes
 
Conhecendo o ubuntu enterprise cloud - UEC
Conhecendo o ubuntu enterprise cloud - UECConhecendo o ubuntu enterprise cloud - UEC
Conhecendo o ubuntu enterprise cloud - UECFabiano Weimar
 
Uma visão rápida sobre Nodejs
Uma visão rápida sobre NodejsUma visão rápida sobre Nodejs
Uma visão rápida sobre NodejsRafael Soares
 
Linux4security
Linux4securityLinux4security
Linux4securityDaniel
 
Websocket
WebsocketWebsocket
Websocketmaxii
 

Mais procurados (20)

Faça seu próprio servidor pirata com OpenVZ
Faça seu próprio servidor pirata com OpenVZFaça seu próprio servidor pirata com OpenVZ
Faça seu próprio servidor pirata com OpenVZ
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançado
 
Detalhes internos da nova JVM do Java 8 @mariofts
Detalhes internos da nova JVM do Java 8   @marioftsDetalhes internos da nova JVM do Java 8   @mariofts
Detalhes internos da nova JVM do Java 8 @mariofts
 
A explosão do Node.js: JavaScript é o novo preto
A explosão do Node.js: JavaScript é o novo pretoA explosão do Node.js: JavaScript é o novo preto
A explosão do Node.js: JavaScript é o novo preto
 
Desmistificando um Ambiente de Desenvolvimento WEB com Vagrant
Desmistificando um Ambiente de Desenvolvimento WEB com VagrantDesmistificando um Ambiente de Desenvolvimento WEB com Vagrant
Desmistificando um Ambiente de Desenvolvimento WEB com Vagrant
 
Apresentação VRaptor 3
Apresentação VRaptor 3Apresentação VRaptor 3
Apresentação VRaptor 3
 
Node slide
Node slideNode slide
Node slide
 
TDC2010 - Trilha Python: Python no iG (Automação de Datacenters)
TDC2010 - Trilha Python: Python no iG (Automação de Datacenters)TDC2010 - Trilha Python: Python no iG (Automação de Datacenters)
TDC2010 - Trilha Python: Python no iG (Automação de Datacenters)
 
Introdução ao Nodejs
Introdução ao NodejsIntrodução ao Nodejs
Introdução ao Nodejs
 
Sniffers Parte 3
Sniffers   Parte 3Sniffers   Parte 3
Sniffers Parte 3
 
Python async
Python asyncPython async
Python async
 
Introducão ao Grok - PyConBrasil 3
Introducão ao Grok - PyConBrasil 3Introducão ao Grok - PyConBrasil 3
Introducão ao Grok - PyConBrasil 3
 
OpenLDAP, criando e explorando um overlay
OpenLDAP, criando e explorando um overlayOpenLDAP, criando e explorando um overlay
OpenLDAP, criando e explorando um overlay
 
Open ldap criando e explorando um overlay
Open ldap   criando e explorando um overlayOpen ldap   criando e explorando um overlay
Open ldap criando e explorando um overlay
 
Vagrant + Puppet
Vagrant + PuppetVagrant + Puppet
Vagrant + Puppet
 
Hackeando facebook com wireshark e cookie injector
Hackeando facebook com wireshark e cookie injectorHackeando facebook com wireshark e cookie injector
Hackeando facebook com wireshark e cookie injector
 
Conhecendo o ubuntu enterprise cloud - UEC
Conhecendo o ubuntu enterprise cloud - UECConhecendo o ubuntu enterprise cloud - UEC
Conhecendo o ubuntu enterprise cloud - UEC
 
Uma visão rápida sobre Nodejs
Uma visão rápida sobre NodejsUma visão rápida sobre Nodejs
Uma visão rápida sobre Nodejs
 
Linux4security
Linux4securityLinux4security
Linux4security
 
Websocket
WebsocketWebsocket
Websocket
 

Destaque

Conhecendo o Meteor
Conhecendo o MeteorConhecendo o Meteor
Conhecendo o MeteorCaio Cutrim
 
Nodejs Intro William Dias
Nodejs Intro William DiasNodejs Intro William Dias
Nodejs Intro William DiasWilliam Dias
 
Angular Nodejs e com mongolab
Angular Nodejs e com mongolabAngular Nodejs e com mongolab
Angular Nodejs e com mongolabWende Mendes
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.Filipe Morelli
 
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo BranasNode.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo BranasRodrigo Branas
 
Query mechanisms for NoSQL databases
Query mechanisms for NoSQL databasesQuery mechanisms for NoSQL databases
Query mechanisms for NoSQL databasesArangoDB Database
 

Destaque (8)

Conhecendo o Meteor
Conhecendo o MeteorConhecendo o Meteor
Conhecendo o Meteor
 
Nodejs Intro William Dias
Nodejs Intro William DiasNodejs Intro William Dias
Nodejs Intro William Dias
 
Crawler com nodejs
Crawler com nodejsCrawler com nodejs
Crawler com nodejs
 
Angular Nodejs e com mongolab
Angular Nodejs e com mongolabAngular Nodejs e com mongolab
Angular Nodejs e com mongolab
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.
 
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo BranasNode.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
 
Query mechanisms for NoSQL databases
Query mechanisms for NoSQL databasesQuery mechanisms for NoSQL databases
Query mechanisms for NoSQL databases
 
Build Features, Not Apps
Build Features, Not AppsBuild Features, Not Apps
Build Features, Not Apps
 

Semelhante a GDG NodeJS Sem Segredos

O bom, o mau, o vilão... e o node.js
O bom, o mau, o vilão... e o node.jsO bom, o mau, o vilão... e o node.js
O bom, o mau, o vilão... e o node.jsNuno Paz
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com PythonLuiz Aldabalde
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com PythonPythOnRio
 
Apresentação Openstack - FISL 2013
Apresentação Openstack - FISL 2013Apresentação Openstack - FISL 2013
Apresentação Openstack - FISL 2013Marcelo Dieder
 
Node.js, Uma breve introdução
Node.js, Uma breve introduçãoNode.js, Uma breve introdução
Node.js, Uma breve introduçãoPablo Feijó
 
Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveiselliando dias
 
Linguagens Dinamicas na JVM
Linguagens Dinamicas na JVMLinguagens Dinamicas na JVM
Linguagens Dinamicas na JVMWilliam Gouvea
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaAlexandre Tarifa
 
Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.Thiago Rondon
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terEmerson Macedo
 
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsVinicius Reis
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2PrinceGuru MS
 
Interop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NETInterop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NETAlessandro Binhara
 
Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Emerson Macedo
 
MEO Cloud - Python Lisbon Meetup
MEO Cloud - Python Lisbon MeetupMEO Cloud - Python Lisbon Meetup
MEO Cloud - Python Lisbon MeetupAndré Cruz
 
PHP like a super hero
PHP like a super heroPHP like a super hero
PHP like a super heroElton Minetto
 
Secomp 2011 - Node.JS - Introdução
Secomp 2011 - Node.JS - IntroduçãoSecomp 2011 - Node.JS - Introdução
Secomp 2011 - Node.JS - IntroduçãoEmerson Macedo
 

Semelhante a GDG NodeJS Sem Segredos (20)

O bom, o mau, o vilão... e o node.js
O bom, o mau, o vilão... e o node.jsO bom, o mau, o vilão... e o node.js
O bom, o mau, o vilão... e o node.js
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com Python
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com Python
 
Apresentação Openstack - FISL 2013
Apresentação Openstack - FISL 2013Apresentação Openstack - FISL 2013
Apresentação Openstack - FISL 2013
 
Node.js, Uma breve introdução
Node.js, Uma breve introduçãoNode.js, Uma breve introdução
Node.js, Uma breve introdução
 
Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveis
 
Dismistificando deep learning
Dismistificando deep learningDismistificando deep learning
Dismistificando deep learning
 
Linguagens Dinamicas na JVM
Linguagens Dinamicas na JVMLinguagens Dinamicas na JVM
Linguagens Dinamicas na JVM
 
Cygwin
CygwinCygwin
Cygwin
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis ter
 
Cakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudouCakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudou
 
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
 
Interop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NETInterop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NET
 
Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011
 
MEO Cloud - Python Lisbon Meetup
MEO Cloud - Python Lisbon MeetupMEO Cloud - Python Lisbon Meetup
MEO Cloud - Python Lisbon Meetup
 
PHP like a super hero
PHP like a super heroPHP like a super hero
PHP like a super hero
 
Secomp 2011 - Node.JS - Introdução
Secomp 2011 - Node.JS - IntroduçãoSecomp 2011 - Node.JS - Introdução
Secomp 2011 - Node.JS - Introdução
 

GDG NodeJS Sem Segredos