SlideShare a Scribd company logo
1 of 35
Download to read offline
Conhecendo o mundo
Caio Ribeiro Pereira
Twitter: @crp_underground
Github: caio-ribeiro-pereira
Blog: Underground WebDev
Autor do livro
casadocodigo.com.br/products/livro-nodejs
Autor do livro
casadocodigo.com.br/products/livro-meteor
Autor
Web Developer
Entusiasta Node.js / Javascript
Portifólio: crpwebdev.com
Bacharel Sistemas de Informação na Unisantos
O que é isso?
• Servidor web de baixo-nível;
• Foco em real-time e alta escalabilidade;
• Nascido em 2009;
• O papai é o Ryan Dahl;
• 14 médicos no dia do parto;
• O filho nasceu grande com:
–8000 linhas de C++;
–2000 linhas de Javascript;
Node.js + Javascript V8
Node.js + Event I/O
Node.js + Non-Blocking
Threads
Blocking Threads Non-Blocking Threads
Node.js + Funções Assíncrona
Node.js = Alta
escalabilidade
Node.js = Real-Time
Real-Time != Ajax
Ajax = Requisição assíncrona
HTTP
Real-time = Conexão bidirecional
com WebSockets
O que fazer com tudo isso?
Servidores de Games Online
Aplicativos Real-time
Processamento assíncrono
Aplicações multi-protocolo
APIs REST
Servidor HTTP
Outros frameworks I/O
Twisted – Python: twistedmatrix.com
Tornado – Python: tornadoweb.org
Thin – Ruby: code.macournoyer.com/thin
EventMachine – Ruby: rubyeventmachine.com
Grizzly – Java: grizzly.java.net
Empresas que utilizam
Node.js
Ferramentas e módulos do
Node.js
ToolKit para trabalhar com
Node.js
Editor de código:
TextMate, SublimeText, Gedit, Eclipse, Cloud9,
Vim
Linguagens:
Javascript, CoffeeScript, TypeScript ou Haxe
Debuggers:
Chrome V8 Eclipse Plugin, NodeDebugger
Gerenciador de pacotes:
NPM – Node Package Manager
Alguns módulos…
Web Frameworks:
Express, Geddy, Sails, Meteor
ODMs e ORMs:
Mongoose, Sequelize, Riak-js, Nedis, Cradle
Canivetes suíços:
Underscore.js, Moment, Grunt, Gulp, Validator
TDD:
Mocha, Should, Chai, Expect.js, Karma
Alguns módulos…
Template Engine:
Jade, EJS, Haml.js, Handlebars
CSS Engine:
Stylus, Less, Sass
CMS e Blog:
Calipso, Blacksmith, Harpjs
Real-time:
Socket.IO, NowJS, SockJS
Onde hospedar?
Node.js na prática
Código-Fonte:
https://github.com/caio-ribeiro-pereira/
devinsantos
Round 1
3 maneiras de fazer
Hello World
com Node.js
Round 2
Mini-Chat
Final Round
Simple Analytics
Dúvidas? Críticas?
Sugestões?
Obrigado pessoal!

More Related Content

What's hot

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
 
Introdução à Node.js + MongoDB
Introdução à Node.js + MongoDBIntrodução à Node.js + MongoDB
Introdução à Node.js + MongoDBLuiz Duarte
 
Node.js Sorocaba - meetup #1
Node.js Sorocaba - meetup #1Node.js Sorocaba - meetup #1
Node.js Sorocaba - meetup #1Pablo Souza
 
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
 
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
 
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasNode.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasRodrigo Branas
 
MongoDB: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.MongoDB: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.Leonardo Quevedo
 
Light Talk: Introdução sobre Node.js
Light Talk: Introdução sobre Node.jsLight Talk: Introdução sobre Node.js
Light Talk: Introdução sobre Node.jsCaio Ribeiro Pereira
 
Aula 5 java script
Aula 5   java scriptAula 5   java script
Aula 5 java scriptandreluizlc
 
Node.js, Uma breve introdução
Node.js, Uma breve introduçãoNode.js, Uma breve introdução
Node.js, Uma breve introduçãoPablo Feijó
 
Android chat app com Node.js
Android chat app com Node.jsAndroid chat app com Node.js
Android chat app com Node.jsLuiz Duarte
 
Aula 8 php (intro, get e post)
Aula 8   php (intro, get e post)Aula 8   php (intro, get e post)
Aula 8 php (intro, get e post)andreluizlc
 
Introdução ao NodeJS
Introdução ao NodeJSIntrodução ao NodeJS
Introdução ao NodeJSGiovanni Bassi
 
Workshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + MongooseWorkshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + MongooseLuiz Duarte
 
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
 
Conhecendo o Nodejs
Conhecendo o NodejsConhecendo o Nodejs
Conhecendo o NodejsCaio Cutrim
 

What's hot (20)

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
 
Introdução à Node.js + MongoDB
Introdução à Node.js + MongoDBIntrodução à Node.js + MongoDB
Introdução à Node.js + MongoDB
 
Node.js Sorocaba - meetup #1
Node.js Sorocaba - meetup #1Node.js Sorocaba - meetup #1
Node.js Sorocaba - meetup #1
 
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
 
Node.js no Pagar.me
Node.js no Pagar.meNode.js no Pagar.me
Node.js no Pagar.me
 
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
 
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasNode.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
 
MongoDB: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.MongoDB: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.
 
Orb - Chat by location
Orb - Chat by locationOrb - Chat by location
Orb - Chat by location
 
Light Talk: Introdução sobre Node.js
Light Talk: Introdução sobre Node.jsLight Talk: Introdução sobre Node.js
Light Talk: Introdução sobre Node.js
 
Aula 5 java script
Aula 5   java scriptAula 5   java script
Aula 5 java script
 
Performance Web com ASP.NET MVC
Performance Web com ASP.NET MVCPerformance Web com ASP.NET MVC
Performance Web com ASP.NET MVC
 
Node.js, Uma breve introdução
Node.js, Uma breve introduçãoNode.js, Uma breve introdução
Node.js, Uma breve introdução
 
Android chat app com Node.js
Android chat app com Node.jsAndroid chat app com Node.js
Android chat app com Node.js
 
PHP + Node.js
PHP + Node.jsPHP + Node.js
PHP + Node.js
 
Aula 8 php (intro, get e post)
Aula 8   php (intro, get e post)Aula 8   php (intro, get e post)
Aula 8 php (intro, get e post)
 
Introdução ao NodeJS
Introdução ao NodeJSIntrodução ao NodeJS
Introdução ao NodeJS
 
Workshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + MongooseWorkshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + Mongoose
 
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.
 
Conhecendo o Nodejs
Conhecendo o NodejsConhecendo o Nodejs
Conhecendo o Nodejs
 

Viewers also liked

Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.jsVikash Singh
 
DevOps e redes -- SDN NFV e Docker
DevOps e redes -- SDN NFV e DockerDevOps e redes -- SDN NFV e Docker
DevOps e redes -- SDN NFV e DockerLucas Arbiza
 
Discutindo DevOps na pratica, por Danilo Sato
Discutindo DevOps na pratica, por Danilo SatoDiscutindo DevOps na pratica, por Danilo Sato
Discutindo DevOps na pratica, por Danilo SatoThoughtworks
 
An Introduction to DevOps with Chef
An Introduction to DevOps with ChefAn Introduction to DevOps with Chef
An Introduction to DevOps with ChefJulian Dunn
 
Package your Java EE Application using Docker and Kubernetes
Package your Java EE Application using Docker and KubernetesPackage your Java EE Application using Docker and Kubernetes
Package your Java EE Application using Docker and KubernetesArun Gupta
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to KubernetesImesh Gunaratne
 
Hereditariedade da cor dos olhos
Hereditariedade da cor dos olhosHereditariedade da cor dos olhos
Hereditariedade da cor dos olhosisabelourenco
 

Viewers also liked (10)

Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Realtime com node.js e socket.io
Realtime com node.js e socket.ioRealtime com node.js e socket.io
Realtime com node.js e socket.io
 
Introdução ao Chef Ops
Introdução ao Chef OpsIntrodução ao Chef Ops
Introdução ao Chef Ops
 
DevOps e redes -- SDN NFV e Docker
DevOps e redes -- SDN NFV e DockerDevOps e redes -- SDN NFV e Docker
DevOps e redes -- SDN NFV e Docker
 
Discutindo DevOps na pratica, por Danilo Sato
Discutindo DevOps na pratica, por Danilo SatoDiscutindo DevOps na pratica, por Danilo Sato
Discutindo DevOps na pratica, por Danilo Sato
 
An Introduction to DevOps with Chef
An Introduction to DevOps with ChefAn Introduction to DevOps with Chef
An Introduction to DevOps with Chef
 
Package your Java EE Application using Docker and Kubernetes
Package your Java EE Application using Docker and KubernetesPackage your Java EE Application using Docker and Kubernetes
Package your Java EE Application using Docker and Kubernetes
 
DevOps
DevOpsDevOps
DevOps
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
 
Hereditariedade da cor dos olhos
Hereditariedade da cor dos olhosHereditariedade da cor dos olhos
Hereditariedade da cor dos olhos
 

Similar to Conhecendo mundo Node.js

Integração com webservices usando MVC e mágica
Integração com webservices usando MVC e mágicaIntegração com webservices usando MVC e mágica
Integração com webservices usando MVC e mágicaLeocadio Tiné
 
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...iMasters
 
From Zero to App - Usando React e Firebase
From Zero to App  - Usando React e Firebase From Zero to App  - Usando React e Firebase
From Zero to App - Usando React e Firebase Alvaro Viebrantz
 
HTML5 - William Dias - Davi Reine - XVII SACOMP
HTML5 - William Dias - Davi Reine - XVII SACOMPHTML5 - William Dias - Davi Reine - XVII SACOMP
HTML5 - William Dias - Davi Reine - XVII SACOMPWilliam Dias
 
Automatizando Tarefas com o Watir-Webdriver - Case
Automatizando Tarefas com o Watir-Webdriver - CaseAutomatizando Tarefas com o Watir-Webdriver - Case
Automatizando Tarefas com o Watir-Webdriver - CaseLucas Prim
 
TDC2011: Java EE 6 & Azure
TDC2011: Java EE 6 & AzureTDC2011: Java EE 6 & Azure
TDC2011: Java EE 6 & AzureDr. Spock
 
Node.js - Programação assíncrona e de tempo real
Node.js - Programação assíncrona e de tempo realNode.js - Programação assíncrona e de tempo real
Node.js - Programação assíncrona e de tempo realDiogo Cabral da Silva
 
Real time com java e Node.Js
Real time com java e Node.JsReal time com java e Node.Js
Real time com java e Node.JsFabiano Modos
 
Palestra SFD etec Netbeans e Java 3D
Palestra SFD etec Netbeans e Java 3DPalestra SFD etec Netbeans e Java 3D
Palestra SFD etec Netbeans e Java 3DRenato Puccini
 
TDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows Azure
TDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows AzureTDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows Azure
TDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows AzureLuciano Condé
 
Visão Geral De Desenvolvimento Web Sre 2012
Visão Geral De Desenvolvimento Web   Sre 2012Visão Geral De Desenvolvimento Web   Sre 2012
Visão Geral De Desenvolvimento Web Sre 2012Carlos Casalicchio
 
Desenvolvimento de aplicações assíncronas, orientadas a eventos e poliglotas ...
Desenvolvimento de aplicações assíncronas, orientadas a eventos e poliglotas ...Desenvolvimento de aplicações assíncronas, orientadas a eventos e poliglotas ...
Desenvolvimento de aplicações assíncronas, orientadas a eventos e poliglotas ...Rodrigo Peleias
 
Como webscraping pode ajudar no Marketing?
Como webscraping pode ajudar no Marketing?Como webscraping pode ajudar no Marketing?
Como webscraping pode ajudar no Marketing?Thiago Rocha
 
Descobrindo APIs REST
Descobrindo APIs RESTDescobrindo APIs REST
Descobrindo APIs RESTGuilherme
 
Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetPython mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetMarcos Petry
 
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web  - Marcos Daniel PetryPython mudando o modo de desenvolver para a web  - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web - Marcos Daniel PetryTchelinux
 
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin
O uso de PWA e o futuro do desenvolvimento mobile com React Native e KotlinO uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin
O uso de PWA e o futuro do desenvolvimento mobile com React Native e KotlinDavid Robert Camargo de Campos
 

Similar to Conhecendo mundo Node.js (20)

Integração com webservices usando MVC e mágica
Integração com webservices usando MVC e mágicaIntegração com webservices usando MVC e mágica
Integração com webservices usando MVC e mágica
 
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
 
From Zero to App - Usando React e Firebase
From Zero to App  - Usando React e Firebase From Zero to App  - Usando React e Firebase
From Zero to App - Usando React e Firebase
 
HTML5 - William Dias - Davi Reine - XVII SACOMP
HTML5 - William Dias - Davi Reine - XVII SACOMPHTML5 - William Dias - Davi Reine - XVII SACOMP
HTML5 - William Dias - Davi Reine - XVII SACOMP
 
Automatizando Tarefas com o Watir-Webdriver - Case
Automatizando Tarefas com o Watir-Webdriver - CaseAutomatizando Tarefas com o Watir-Webdriver - Case
Automatizando Tarefas com o Watir-Webdriver - Case
 
TDC2011: Java EE 6 & Azure
TDC2011: Java EE 6 & AzureTDC2011: Java EE 6 & Azure
TDC2011: Java EE 6 & Azure
 
Node.js - Programação assíncrona e de tempo real
Node.js - Programação assíncrona e de tempo realNode.js - Programação assíncrona e de tempo real
Node.js - Programação assíncrona e de tempo real
 
Real time com java e Node.Js
Real time com java e Node.JsReal time com java e Node.Js
Real time com java e Node.Js
 
Curso AngularJS - Parte 1
Curso AngularJS - Parte 1Curso AngularJS - Parte 1
Curso AngularJS - Parte 1
 
Palestra SFD etec Netbeans e Java 3D
Palestra SFD etec Netbeans e Java 3DPalestra SFD etec Netbeans e Java 3D
Palestra SFD etec Netbeans e Java 3D
 
TDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows Azure
TDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows AzureTDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows Azure
TDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows Azure
 
Nosql4java
Nosql4javaNosql4java
Nosql4java
 
Visão Geral De Desenvolvimento Web Sre 2012
Visão Geral De Desenvolvimento Web   Sre 2012Visão Geral De Desenvolvimento Web   Sre 2012
Visão Geral De Desenvolvimento Web Sre 2012
 
Desenvolvimento de aplicações assíncronas, orientadas a eventos e poliglotas ...
Desenvolvimento de aplicações assíncronas, orientadas a eventos e poliglotas ...Desenvolvimento de aplicações assíncronas, orientadas a eventos e poliglotas ...
Desenvolvimento de aplicações assíncronas, orientadas a eventos e poliglotas ...
 
Como webscraping pode ajudar no Marketing?
Como webscraping pode ajudar no Marketing?Como webscraping pode ajudar no Marketing?
Como webscraping pode ajudar no Marketing?
 
Aplicações web realtime
Aplicações web realtimeAplicações web realtime
Aplicações web realtime
 
Descobrindo APIs REST
Descobrindo APIs RESTDescobrindo APIs REST
Descobrindo APIs REST
 
Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetPython mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internet
 
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web  - Marcos Daniel PetryPython mudando o modo de desenvolver para a web  - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
 
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin
O uso de PWA e o futuro do desenvolvimento mobile com React Native e KotlinO uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin
 

Conhecendo mundo Node.js

Editor's Notes

  1. É uma plataforma server-side com foco em desenvolvimento de aplicações de alta escalabilidade, processamento intensivo com resposta real-time. Seu nascimento foi em 2009 pelo autor Ryan Dahl, atualmente esta na versão 0.6.15, cerca de +8000 linhas em C++ com +2000 linhas em JS. 14 colaboradores iniciais
  2. Node.js foi escrito em C++ com Javascript V8 do Google. Porém a linguagem que o programador irá trabalhar é com Javascript no servidor. Isso facilita muito a vida dos desenvolvedores web, pois praticamente você irá trabalhar com menos tecnologias, se resumindo em HTML, CSS e JS.
  3. Uma das características notáveis no Node.js é o seu paradigma orientado a eventos de I/O Javascript realiza eventos através dos Callbacks, e Node.js utiliza esse Callbacks da linguagem para tratar eventos de I/O. Alguns exemplos de I/O bem conhecido seria o tratamento do evento conectar, ou seja, ao conectar no servidor faça alguma tarefa, ao desconectar também faça algo. Até mesmo é possível tratar alguns eventos quando o próprio servidor irá cair.
  4. Trabalhar com Threads Não bloqueantes significa não travar um recurso quando haver concorrencia para usá-lo. Isso faz com que Node.js seja perfeito para trabalhar em ambientes que não é prioridade travar um recurso, um bom exemplo disso são os games onlines e os alerts do Facebook, Twitter e LinkedIn.
  5. Com o recurso de Threads N-Bloqueantes é possível atingir uma alta escalabilidade comparado com sistemas de Threads-Bloqueantes, isso ocorre do fato de Threads Bloqueantes mantem alocados na memoria do servidor essas threads até que todas elas sejam satisfeitas. E esse tempo que elas ficam são maiores do com num sistema Não-Bloqueante, por isso a sua escalabilidade é inferior.
  6. Um dos grandes destaques é que Node.js foi projetado para trabalhar com Real-time. Algo totalmente diferente de Ajax Real-time pode ser tanto unicast 1 cliente com 1 servidor como broadcast 1 servidor para N clientes.
  7. Ajax é um recurso do HTTP de comunicação Unidirecional e Real-time vem do WebSocket e FlashSocket que mantem comunicacao aberta entre cliente servidor, teoricamente conhecida como conexao bidirecional.
  8. A nova versão mobile do LinkedIn é totalmente HTML5 e seu back-end antigo era em Rails pelo qual utilizava 15 servidores com 15 instâncias da aplicação, após mudar seu back-end para Node.js passou a utilizar apenas 4 instâncias, diminuindo mais que a metade de instâncias dos 15 servidores.
  9. Assim como o LinkedIn a SoundCloud utiliza em seu back-end mobile Node.js
  10. Voxer app do iPhone com back-end node.js, que visa transformar seu iPhone em um rádio Nextel.
  11. Sistema de táxi privado totalmente mobile, há diversos pontos Ubers no EUA com motoristas prontos para te buscar e levá-lo para onde desejar, igual a um táxi, a diferença é que você solicita via mobile e também o pagamento é via mobile através de cartão de crédito.
  12. IDE totalmente focada para desenvolvimento Node.js e tbm foi desenvolvida com Node.js em seu back-end
  13. Criou um projeto open source chamado Mojito que é um Framework MVC para Node.js