SlideShare uma empresa Scribd logo
Rodrigo Branas – @rodrigobranas - http://www.agilecode.com.br
O Node.js não nasceu com a intenção
de levar o JavaScript para o servidor
Tudo começou com Ryan Dahl
Node.js - #1 - Introdução - Rodrigo Branas
A forma como a maior parte das
plataformas lida com I/O está errada
Node.js - #1 - Introdução - Rodrigo Branas
As threads acabam passando a maior
parte do seu tempo dormindo...
Isso acaba alocando recursos, como
memória, desnecessariamente
Será que é possível fazer a mesma
coisa de um jeito mais eficiente?
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
O Node.js processa tudo em uma única
thread, utilizando um event loop
Hands-On: Single Thread
primes-single-thread.js
Dessa forma, como é possível escalar e
atender vários clientes ao mesmo tempo?
Na verdade, existe um thread pool
responsável pelo processamento de I/O
Hands-On: Thread Pool
files.js
Hands-On: Multi Thread
primes-multi-thread.js
Node.js - #1 - Introdução - Rodrigo Branas
A libuv é uma biblioteca multi-plataforma
responsável pela realização de I/O assíncrono,
fornecendo a implementação do event loop e do
thread pool, juntamente com o suporte a TCP e
UDP socket, resolução de DNS, sistema de
arquivos, processos entre outras.
Node.js - #1 - Introdução - Rodrigo Branas
Qual linguagem oferece um bom suporte
ao desenvolvimento assíncrono?
C podia ser mais atraente...
Ele avaliou ainda Lua e Haskell
JavaScript é perfeito, tem uma sintaxe
amigável e tudo gira em torno de funções
Os navegadores já utilizam de forma
assíncrona, baseado em um event loop
Node.js - #1 - Introdução - Rodrigo Branas
O V8 é um interpretador de JavaScript de alta
performance desenvolvido pelo Google. Ele tem o
código aberto e foi desenvolvido em C++ com o
objetivo de atender ao navegador Chrome.
Será que o Node.js é rápido mesmo?
Hands-On: Performance
primes.js vs Primes.java
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
O Node.js uma plataforma de código aberto para
a execução de JavaScript no servidor. É composto
pela junção do interpretador V8, do Google, com
a biblioteca libuv e por um conjunto de módulos.
Node.js	
  Bindings	
  (C++)
Node.js	
  Code	
  Library	
  (JavaScript)
http fs stream buffer net
crypto zlib cluster dns ...
+
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
A comunidade, insatisfeita com a Joyent,
fez um fork do Node.js criando o io.js
Em 09/2015, com a saída da Joyent, io.js
v3.3 se juntou com o Node.js v0.12,
dando origem ao Node.js v4.0
Quem está utilizando Node.js?
Node.js - #1 - Introdução - Rodrigo Branas
Quer começar a utilizar Node.js?
Node.js - #1 - Introdução - Rodrigo Branas
node --version
REPL ou Read-Eval-Print-Loop
node helloWorld.js
O Node.js suporta ES6?
Rodrigo Branas	
  
Agile Code: http://www.agilecode.com.br
Twitter: @rodrigobranas
SlideShare: http://www.slideshare.com/rodrigobranas
YouTube: http://www.youtube.com/rodrigobranas
LinkedIn: http://br.linkedin.com/in/rodrigobranas
+Plus: https://plus.google.com/+RodrigoBranas
GitHub: http://www.github.com/rodrigobranas

Mais conteúdo relacionado

PDF
Node.js e Express
Dan Vitoriano
 
PPTX
Express js
Manav Prasad
 
PDF
Curso de Node JS Básico
Victor Hazin da Rocha
 
PDF
Introdução React.js
Henrique Gogó
 
PDF
Spring Framework - AOP
Dzmitry Naskou
 
PDF
React - Introdução
Jefferson Mariano de Souza
 
PPT
Aula javascript
Gabriel Moura
 
PPTX
Introdução ao Front-end no Desenvolvimento Web
Anderson Luís Furlan
 
Node.js e Express
Dan Vitoriano
 
Express js
Manav Prasad
 
Curso de Node JS Básico
Victor Hazin da Rocha
 
Introdução React.js
Henrique Gogó
 
Spring Framework - AOP
Dzmitry Naskou
 
React - Introdução
Jefferson Mariano de Souza
 
Aula javascript
Gabriel Moura
 
Introdução ao Front-end no Desenvolvimento Web
Anderson Luís Furlan
 

Mais procurados (20)

PDF
Node.js, Uma breve introdução
Pablo Feijó
 
PPTX
Web api
Sudhakar Sharma
 
PDF
Introdução a JavaScript
Bruno Catão
 
PDF
Introduction to ReactJS
Hoang Long
 
PDF
Introdução ao React
Luiz Paulo dos Prazeres Júnior
 
PDF
Cours JavaScript
Olivier Le Goaër
 
PPTX
jQuery
Dileep Mishra
 
PPTX
ReactJS presentation.pptx
DivyanshGupta922023
 
PPT
Html Básico
Marcelo Machado Pereira
 
PDF
Nodejs - A performance que eu sempre quis ter
Emerson Macedo
 
PPT
Node.js Express Framework
TheCreativedev Blog
 
PDF
Java 8 Lambda Expressions
Scott Leberknight
 
PPTX
Desvendando a linguagem JavaScript
Rodrigo Branas
 
PPTX
Introdução ao desenvolvimento da web.pptx
MarceloRosenbrock1
 
PPTX
React JS - Parte 1
Bruno Catão
 
PDF
Curso de Java: Introdução a lambda e Streams
Helder da Rocha
 
PDF
Curso javascript básico
Vinicius Dacal Lopes
 
PPTX
Ajax
Tech_MX
 
PDF
ReactJS presentation
Thanh Tuong
 
PPTX
Introduction Node.js
Erik van Appeldoorn
 
Node.js, Uma breve introdução
Pablo Feijó
 
Introdução a JavaScript
Bruno Catão
 
Introduction to ReactJS
Hoang Long
 
Introdução ao React
Luiz Paulo dos Prazeres Júnior
 
Cours JavaScript
Olivier Le Goaër
 
ReactJS presentation.pptx
DivyanshGupta922023
 
Nodejs - A performance que eu sempre quis ter
Emerson Macedo
 
Node.js Express Framework
TheCreativedev Blog
 
Java 8 Lambda Expressions
Scott Leberknight
 
Desvendando a linguagem JavaScript
Rodrigo Branas
 
Introdução ao desenvolvimento da web.pptx
MarceloRosenbrock1
 
React JS - Parte 1
Bruno Catão
 
Curso de Java: Introdução a lambda e Streams
Helder da Rocha
 
Curso javascript básico
Vinicius Dacal Lopes
 
Ajax
Tech_MX
 
ReactJS presentation
Thanh Tuong
 
Introduction Node.js
Erik van Appeldoorn
 
Anúncio

Destaque (20)

PDF
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Rodrigo Branas
 
PDF
Node.js - #3 - Global Objects - Rodrigo Branas
Rodrigo Branas
 
PDF
Node.js - #4 - Timers - Rodrigo Branas
Rodrigo Branas
 
PDF
Node.js - #6 - Core Modules - net - Rodrigo Branas
Rodrigo Branas
 
PDF
Node.js - #2 - Sistema de Módulos - Rodrigo Branas
Rodrigo Branas
 
PDF
Node.js - #5 - Process - Rodrigo Branas
Rodrigo Branas
 
PPTX
Introdução ao Node.js - FATEC SP
Arthur Fücher
 
PPTX
Criando serviços com AngularJS
Rodrigo Branas
 
PPTX
Introdução ao AngularJS
Rodrigo Branas
 
PDF
Node js - Javascript Server Side
Gustavo Corrêa Alves
 
PPTX
Grunt
Rodrigo Branas
 
PPTX
Domain-Driven Design
Rodrigo Branas
 
PDF
Secomp 2011 - Node.JS - Introdução
Emerson Macedo
 
PPTX
Validando Formulários com AngularJS
Rodrigo Branas
 
PDF
HTTP Interceptors com AngularJS
Rodrigo Branas
 
PPTX
HTTP, JSON, REST e AJAX com AngularJS
Rodrigo Branas
 
PPTX
Utilizando diretivas com AngularJS
Rodrigo Branas
 
PPTX
Introdução ao AngularJS!
Diullian Casagrande
 
PPTX
AngularJS - 10 passos para aprender a criar suas directivas
Janderson Fernandes Cardoso
 
PPTX
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Rodrigo Branas
 
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Rodrigo Branas
 
Node.js - #3 - Global Objects - Rodrigo Branas
Rodrigo Branas
 
Node.js - #4 - Timers - Rodrigo Branas
Rodrigo Branas
 
Node.js - #6 - Core Modules - net - Rodrigo Branas
Rodrigo Branas
 
Node.js - #2 - Sistema de Módulos - Rodrigo Branas
Rodrigo Branas
 
Node.js - #5 - Process - Rodrigo Branas
Rodrigo Branas
 
Introdução ao Node.js - FATEC SP
Arthur Fücher
 
Criando serviços com AngularJS
Rodrigo Branas
 
Introdução ao AngularJS
Rodrigo Branas
 
Node js - Javascript Server Side
Gustavo Corrêa Alves
 
Domain-Driven Design
Rodrigo Branas
 
Secomp 2011 - Node.JS - Introdução
Emerson Macedo
 
Validando Formulários com AngularJS
Rodrigo Branas
 
HTTP Interceptors com AngularJS
Rodrigo Branas
 
HTTP, JSON, REST e AJAX com AngularJS
Rodrigo Branas
 
Utilizando diretivas com AngularJS
Rodrigo Branas
 
Introdução ao AngularJS!
Diullian Casagrande
 
AngularJS - 10 passos para aprender a criar suas directivas
Janderson Fernandes Cardoso
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Rodrigo Branas
 
Anúncio

Semelhante a Node.js - #1 - Introdução - Rodrigo Branas (20)

PPTX
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
Jackson F. de A. Mafra
 
PPTX
Node.js - Devo adotar na minha empresa?
Pablo Souza
 
PPTX
Introdução ao Nodejs
Márcio Silvestroni
 
PDF
Node.js no Pagar.me
Pedro Franceschi
 
PPTX
Node.js
luizhse
 
PDF
IBM - Curso Node + Angular - Aula 01
Claudiney Junior
 
PDF
Node.js - Programação assíncrona e de tempo real
Diogo Cabral da Silva
 
PPT
Nodejs justdigital
Just Digital
 
PDF
Node.js: 5 razões para começar a utilizar
Filipe Falcão
 
PPTX
O que é nodejs, cases e vantagens
Rodrigo Matheus
 
PDF
Node.JS - Workshop do básico ao avançado
Eduardo Bohrer
 
PDF
Node js
Ederson de Lima
 
PPTX
GDG Conf Node JS sem segredos
Caio Cutrim
 
PDF
TDC2018SP | Trilha Node.js - Melhores praticas de desempenho utilizando Node....
tdc-globalcode
 
PDF
Por que Node JS?
Austin Felipe Santos
 
ODP
GDG NodeJS Sem Segredos
Caio Cutrim
 
PDF
No core do node js - entendendo como a plataforma trabalha
Marcelo Serpa
 
PPTX
APRESENTAÇÃO ISAQUE E RAQUEL QUARTA- VICTOR.pptx
jorelzin0606
 
PPTX
NodeJS
Renato Sousa
 
PPTX
NodeJS - Tutorial de forma simples e pratica.
Filipe Morelli
 
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
Jackson F. de A. Mafra
 
Node.js - Devo adotar na minha empresa?
Pablo Souza
 
Introdução ao Nodejs
Márcio Silvestroni
 
Node.js no Pagar.me
Pedro Franceschi
 
Node.js
luizhse
 
IBM - Curso Node + Angular - Aula 01
Claudiney Junior
 
Node.js - Programação assíncrona e de tempo real
Diogo Cabral da Silva
 
Nodejs justdigital
Just Digital
 
Node.js: 5 razões para começar a utilizar
Filipe Falcão
 
O que é nodejs, cases e vantagens
Rodrigo Matheus
 
Node.JS - Workshop do básico ao avançado
Eduardo Bohrer
 
GDG Conf Node JS sem segredos
Caio Cutrim
 
TDC2018SP | Trilha Node.js - Melhores praticas de desempenho utilizando Node....
tdc-globalcode
 
Por que Node JS?
Austin Felipe Santos
 
GDG NodeJS Sem Segredos
Caio Cutrim
 
No core do node js - entendendo como a plataforma trabalha
Marcelo Serpa
 
APRESENTAÇÃO ISAQUE E RAQUEL QUARTA- VICTOR.pptx
jorelzin0606
 
NodeJS
Renato Sousa
 
NodeJS - Tutorial de forma simples e pratica.
Filipe Morelli
 

Mais de Rodrigo Branas (19)

PDF
Clean Architecture
Rodrigo Branas
 
PDF
#6 - Git - Desfazendo as coisas
Rodrigo Branas
 
PDF
#1 - Git - Introdução
Rodrigo Branas
 
PDF
#5 - Git - Contribuindo com um repositório remoto
Rodrigo Branas
 
PDF
#4 - Git - Stash
Rodrigo Branas
 
PDF
#3 - Git - Branching e Merging
Rodrigo Branas
 
PDF
#2 - Git - DAG
Rodrigo Branas
 
PPTX
A evolução do AngularJS
Rodrigo Branas
 
PPTX
JavaScript - Date
Rodrigo Branas
 
PPTX
JavaScript - Expressões Regulares
Rodrigo Branas
 
PPTX
Automação de Testes com AngularJS
Rodrigo Branas
 
PPTX
Scope AngularJS
Rodrigo Branas
 
PPTX
Criando Filtros com AngularJS
Rodrigo Branas
 
PPTX
Criando aplicações Single-Page com AngularJS
Rodrigo Branas
 
PPTX
Construindo Diretivas com AngularJS
Rodrigo Branas
 
PPTX
Técnicas de Refactoring
Rodrigo Branas
 
PPTX
Selenium - WebDriver
Rodrigo Branas
 
PPTX
Test-Driven Development com JavaScript, Jasmine Karma
Rodrigo Branas
 
PPTX
Bower
Rodrigo Branas
 
Clean Architecture
Rodrigo Branas
 
#6 - Git - Desfazendo as coisas
Rodrigo Branas
 
#1 - Git - Introdução
Rodrigo Branas
 
#5 - Git - Contribuindo com um repositório remoto
Rodrigo Branas
 
#4 - Git - Stash
Rodrigo Branas
 
#3 - Git - Branching e Merging
Rodrigo Branas
 
#2 - Git - DAG
Rodrigo Branas
 
A evolução do AngularJS
Rodrigo Branas
 
JavaScript - Date
Rodrigo Branas
 
JavaScript - Expressões Regulares
Rodrigo Branas
 
Automação de Testes com AngularJS
Rodrigo Branas
 
Scope AngularJS
Rodrigo Branas
 
Criando Filtros com AngularJS
Rodrigo Branas
 
Criando aplicações Single-Page com AngularJS
Rodrigo Branas
 
Construindo Diretivas com AngularJS
Rodrigo Branas
 
Técnicas de Refactoring
Rodrigo Branas
 
Selenium - WebDriver
Rodrigo Branas
 
Test-Driven Development com JavaScript, Jasmine Karma
Rodrigo Branas
 

Node.js - #1 - Introdução - Rodrigo Branas