SlideShare uma empresa Scribd logo
1 de 16
Ricardo Gonçalves
Developer
Nodejs
JavaScript no server-side
● Nascido em 2009, pelo criador Ryan Dahl junto com 14
colaboradores no início dessa jornada
● Construído sobre o engine v8 JavaScript do Google Chrome
● Utiliza Javascript como linguagem
● Muito popular – um dos repositórios mais seguido no github
● Muitos módulos disponíveis

 http://nodejs.org/
O problema a ser solucionado!
 O problema principal que eles queriam resolver com essa
plataforma foi a de facilitar o desenvolvimento de
aplicações real-time e de alta escalabilidade com isso
surgiu o Node.js.
O que você ganha com isso?
● Vai aprender uma tecnologia nova.
● Vai perceber que Node.js é simples de aprender,
principalmente se você já trabalha com Javascript.
● Vai dominar uma tecnologia poderosa que possui recursos que
vão desde a criação de um simples website até um sistema
web com interações em tempo-real.
● Se você é programador front-end, vai amar Node.js
simplesmente pelo fato de trabalhar com Javascript no backend também.
Principais características
● Linguagem Google Chrome Javascript V8
● Orientado à eventos de I/O
● Threads Não-Bloqueantes (Single Thread)
● Server-side assíncrono
Linguagem Google Chrome
Javascript V8
● Javascript no servidor
● Curva de aprendizado pequena
● Javascript no server-side da aplicação e o mesmo que
conhecemos
● Foco maior na regra de negócio, como utilizar os diversos
módulos e Design Patterns do Javascript
Threads Não-Bloqueantes
Threads Bloqueantes = Trânsito

Threads Não-Bloqueantes = Cardume
Módulos em Node.JS
● Módulos são cruciais para construção de aplicações em
Node
● Padrão CommonJS na construção dos módulos
● Módulos do Núcleo do Node
● - Para trabalhar com sistema de arquivos existe o módulo
fs e para redes os módulos são net (TCP), http, dgram
(UDP), entre outros.
NPM
(Node Package Manager)
 Node Package Manager, é o módulo de grande importância
para projetos Node. Pois ele é um módulo global instalado
para gerenciar a instalação de módulos no projeto, possui
comandos semelhantes a um gerenciador de repositórios
do Linux como apt-get, pacman, yum e outros.
Expresso
 Módulo voltado para realização de testes unitários em
funções Javascript, cujo seus recursos seguem os conceitos
da metodologia TDD - Test-Driven Development.
Stylus
 Framework voltado para gerenciamento dinâmico de CSS.
Suas funcionalidades em destaque são: Mixin, Mixin
parametrizáveis, variáveis para propriedades dos seletores,
operadores com números, funções e namespaces, além de
outras funcionalidades. Muito útil para implementar
estilizações CSS complexas de forma produtiva e eficiente.
Socket.IO
 Framework cross-browser para comunicação real-time
através de mensagens em broadcast. Possui integração
com WebSockets, além de possuir o seu próprio script para
trabalhar no lado cliente.
Jade
 Um template engine muito famoso para Node.js, para
muitos é considerado uma versão melhorada do Haml, pelo
fato de possuir uma síntaxe limpa e de fácil aprendizado.
Permite trabalhar com variáveis e diversos comandos de
servidor dentro da própria view e também permite criar
partials no template.
Instalação
 Para instalar o node e o NPM no ubuntu é muito fácil.
 Abra o console e execute os seguintes comandos:
 sudo apt-get update
 sudo apt-get install -y python-software-properties
python g++ make
 sudo add-apt-repository -y ppa:chris-lea/node.js
 sudo apt-get update
 sudo apt-get install nodejs
 ou então, dependendo da sua versão do ubuntu.
 sudo apt-get install nodejs
 Para instalar o NPM basta executar os seguinte
comando
 curl http://npmjs.org/install.sh | sudo sh
Vamos testar, escrevendo um
helloworld.js
 Abra um editor de texto de sua preferencia e digite:
 var http = require('http');
 http.createServer(function (req, res) {


res.writeHead(200, {'Content-Type': 'text/plain'});



res.end('Hello Worldn');

 }).listen(1337, "127.0.0.1");
 console.log('Server running at http://127.0.0.1:1337/');
 salve e rode o arquivo usando o comando:
 node helloworld.js
 após rodar, será exibido no console o texto Hello World.
Para finalizarmos,
o famoso
chat em nodejs

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

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
 
Desenvolvendo com IONIC
Desenvolvendo com IONICDesenvolvendo com IONIC
Desenvolvendo com IONIC
 
9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem
 
[Testes] frameworks de testes end to-end baseados em node js
[Testes] frameworks de testes end to-end baseados em node js [Testes] frameworks de testes end to-end baseados em node js
[Testes] frameworks de testes end to-end baseados em node js
 
Apresentação
ApresentaçãoApresentação
Apresentação
 
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
 
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
 
Node.js, Uma breve introdução
Node.js, Uma breve introduçãoNode.js, Uma breve introdução
Node.js, Uma breve introdução
 
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
 
.NET Core 2.0, .NET Standard 2.0 e ASP.NET Core 2.0: uma visão geral
.NET Core 2.0, .NET Standard 2.0 e ASP.NET Core 2.0: uma visão geral.NET Core 2.0, .NET Standard 2.0 e ASP.NET Core 2.0: uma visão geral
.NET Core 2.0, .NET Standard 2.0 e ASP.NET Core 2.0: uma visão geral
 
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
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
 
Por que Node JS?
Por que Node JS?Por que Node JS?
Por que Node JS?
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
 
ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017
ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017
ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017
 
APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016
APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016
APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016
 
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bower
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e BowerASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bower
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bower
 
ASP.NET Core em Linux - Canal .NET Dev Week
ASP.NET Core em Linux - Canal .NET Dev WeekASP.NET Core em Linux - Canal .NET Dev Week
ASP.NET Core em Linux - Canal .NET Dev Week
 

Destaque (7)

TDC 2016 - Sass: CSS com super-poderes.
TDC 2016 - Sass: CSS com super-poderes.TDC 2016 - Sass: CSS com super-poderes.
TDC 2016 - Sass: CSS com super-poderes.
 
Organização de times ágeis
Organização de times ágeisOrganização de times ágeis
Organização de times ágeis
 
Comunidades de Prática
Comunidades de PráticaComunidades de Prática
Comunidades de Prática
 
Mapeando User Stories - User story mapping
Mapeando User Stories - User story mappingMapeando User Stories - User story mapping
Mapeando User Stories - User story mapping
 
O futuro do conteúdo e do CMS
O futuro do conteúdo e do CMSO futuro do conteúdo e do CMS
O futuro do conteúdo e do CMS
 
Smacss e-css-faz-bem
Smacss e-css-faz-bemSmacss e-css-faz-bem
Smacss e-css-faz-bem
 
Redis para iniciantes - TDC 2014
Redis para iniciantes - TDC 2014Redis para iniciantes - TDC 2014
Redis para iniciantes - TDC 2014
 

Semelhante a Nodejs justdigital

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
Vinicius Reis
 
Apresentação java
Apresentação javaApresentação java
Apresentação java
munosai
 

Semelhante a Nodejs justdigital (20)

Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout  Tempo Real Eventos - Nodejs - Os Primeiros PassosHangout  Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
 
NodeJS Under the Hood - Concurrency and Multithreading
NodeJS Under the Hood - Concurrency and MultithreadingNodeJS Under the Hood - Concurrency and Multithreading
NodeJS Under the Hood - Concurrency and Multithreading
 
Node js - O poder do JavaScript do lado do servidor
Node js  - O poder do JavaScript do lado do servidorNode js  - O poder do JavaScript do lado do servidor
Node js - O poder do JavaScript do lado do servidor
 
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
 
Zend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil CompetenteZend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil Competente
 
Minicurso Node-RED.pdf
Minicurso Node-RED.pdfMinicurso Node-RED.pdf
Minicurso Node-RED.pdf
 
Começando com Zend Framework 2
Começando com Zend Framework 2Começando com Zend Framework 2
Começando com Zend Framework 2
 
Construção e provisionamento de ambientes de desenvolvimento virtualizados
Construção e provisionamento de ambientes  de desenvolvimento virtualizadosConstrução e provisionamento de ambientes  de desenvolvimento virtualizados
Construção e provisionamento de ambientes de desenvolvimento virtualizados
 
Zend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutençãoZend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutenção
 
Django
DjangoDjango
Django
 
ASP.Net Core FAQ
ASP.Net Core FAQASP.Net Core FAQ
ASP.Net Core FAQ
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
 
MVC & Zend Framework
MVC & Zend FrameworkMVC & Zend Framework
MVC & Zend Framework
 
Apresentação java
Apresentação javaApresentação java
Apresentação java
 
Node.js e Express
Node.js e ExpressNode.js e Express
Node.js e Express
 
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
 
Aplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend FrameworkAplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend Framework
 
The Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPressThe Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPress
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 

Mais de Just Digital

Apresentacao Google Search Appliance - Just Digital - Nov2013
Apresentacao Google Search Appliance - Just Digital - Nov2013Apresentacao Google Search Appliance - Just Digital - Nov2013
Apresentacao Google Search Appliance - Just Digital - Nov2013
Just Digital
 

Mais de Just Digital (18)

ICAgile - Agile Professional Certification
ICAgile - Agile Professional CertificationICAgile - Agile Professional Certification
ICAgile - Agile Professional Certification
 
A importância de contribuir para comunidades OpenSource - Drupal - Natura Dru...
A importância de contribuir para comunidades OpenSource - Drupal - Natura Dru...A importância de contribuir para comunidades OpenSource - Drupal - Natura Dru...
A importância de contribuir para comunidades OpenSource - Drupal - Natura Dru...
 
Palestra agile-brazil-2015-o-agile-e-o-executivo
Palestra agile-brazil-2015-o-agile-e-o-executivoPalestra agile-brazil-2015-o-agile-e-o-executivo
Palestra agile-brazil-2015-o-agile-e-o-executivo
 
Como manter uma empresa 100% ágil?
Como manter uma empresa 100% ágil?Como manter uma empresa 100% ágil?
Como manter uma empresa 100% ágil?
 
Liberte-se do seu cargo
Liberte-se do seu cargoLiberte-se do seu cargo
Liberte-se do seu cargo
 
Teoria dos jogos
Teoria dos jogosTeoria dos jogos
Teoria dos jogos
 
Os fantasmas do texto passado: Como perder o medo de escrever
Os fantasmas do texto passado: Como perder o medo de escreverOs fantasmas do texto passado: Como perder o medo de escrever
Os fantasmas do texto passado: Como perder o medo de escrever
 
Liderança: É preciso ter um (único) chefe?
Liderança: É preciso ter um (único) chefe?Liderança: É preciso ter um (único) chefe?
Liderança: É preciso ter um (único) chefe?
 
Agile Testing no Drupal
Agile Testing no DrupalAgile Testing no Drupal
Agile Testing no Drupal
 
Palestra Drupal - Campus Party 2014
Palestra Drupal - Campus Party 2014Palestra Drupal - Campus Party 2014
Palestra Drupal - Campus Party 2014
 
Palestra Drupal Picchu 2014
Palestra Drupal Picchu 2014Palestra Drupal Picchu 2014
Palestra Drupal Picchu 2014
 
Responsive ou Adaptive Design - Just Digital
Responsive ou Adaptive Design - Just DigitalResponsive ou Adaptive Design - Just Digital
Responsive ou Adaptive Design - Just Digital
 
Apresentacao Google Search Appliance - Just Digital - Nov2013
Apresentacao Google Search Appliance - Just Digital - Nov2013Apresentacao Google Search Appliance - Just Digital - Nov2013
Apresentacao Google Search Appliance - Just Digital - Nov2013
 
AngularJS - Just Digital
AngularJS - Just DigitalAngularJS - Just Digital
AngularJS - Just Digital
 
Palestra sobre Agile e Liderança - Just Digital
Palestra sobre Agile e Liderança - Just DigitalPalestra sobre Agile e Liderança - Just Digital
Palestra sobre Agile e Liderança - Just Digital
 
Overview de Drupal pela Just Digital
Overview de Drupal pela Just DigitalOverview de Drupal pela Just Digital
Overview de Drupal pela Just Digital
 
Palestra pré processadores CSS
Palestra pré processadores CSSPalestra pré processadores CSS
Palestra pré processadores CSS
 
Introdu
IntroduIntrodu
Introdu
 

Nodejs justdigital

  • 2. Nodejs JavaScript no server-side ● Nascido em 2009, pelo criador Ryan Dahl junto com 14 colaboradores no início dessa jornada ● Construído sobre o engine v8 JavaScript do Google Chrome ● Utiliza Javascript como linguagem ● Muito popular – um dos repositórios mais seguido no github ● Muitos módulos disponíveis  http://nodejs.org/
  • 3. O problema a ser solucionado!  O problema principal que eles queriam resolver com essa plataforma foi a de facilitar o desenvolvimento de aplicações real-time e de alta escalabilidade com isso surgiu o Node.js.
  • 4. O que você ganha com isso? ● Vai aprender uma tecnologia nova. ● Vai perceber que Node.js é simples de aprender, principalmente se você já trabalha com Javascript. ● Vai dominar uma tecnologia poderosa que possui recursos que vão desde a criação de um simples website até um sistema web com interações em tempo-real. ● Se você é programador front-end, vai amar Node.js simplesmente pelo fato de trabalhar com Javascript no backend também.
  • 5. Principais características ● Linguagem Google Chrome Javascript V8 ● Orientado à eventos de I/O ● Threads Não-Bloqueantes (Single Thread) ● Server-side assíncrono
  • 6. Linguagem Google Chrome Javascript V8 ● Javascript no servidor ● Curva de aprendizado pequena ● Javascript no server-side da aplicação e o mesmo que conhecemos ● Foco maior na regra de negócio, como utilizar os diversos módulos e Design Patterns do Javascript
  • 7. Threads Não-Bloqueantes Threads Bloqueantes = Trânsito Threads Não-Bloqueantes = Cardume
  • 8. Módulos em Node.JS ● Módulos são cruciais para construção de aplicações em Node ● Padrão CommonJS na construção dos módulos ● Módulos do Núcleo do Node ● - Para trabalhar com sistema de arquivos existe o módulo fs e para redes os módulos são net (TCP), http, dgram (UDP), entre outros.
  • 9. NPM (Node Package Manager)  Node Package Manager, é o módulo de grande importância para projetos Node. Pois ele é um módulo global instalado para gerenciar a instalação de módulos no projeto, possui comandos semelhantes a um gerenciador de repositórios do Linux como apt-get, pacman, yum e outros.
  • 10. Expresso  Módulo voltado para realização de testes unitários em funções Javascript, cujo seus recursos seguem os conceitos da metodologia TDD - Test-Driven Development.
  • 11. Stylus  Framework voltado para gerenciamento dinâmico de CSS. Suas funcionalidades em destaque são: Mixin, Mixin parametrizáveis, variáveis para propriedades dos seletores, operadores com números, funções e namespaces, além de outras funcionalidades. Muito útil para implementar estilizações CSS complexas de forma produtiva e eficiente.
  • 12. Socket.IO  Framework cross-browser para comunicação real-time através de mensagens em broadcast. Possui integração com WebSockets, além de possuir o seu próprio script para trabalhar no lado cliente.
  • 13. Jade  Um template engine muito famoso para Node.js, para muitos é considerado uma versão melhorada do Haml, pelo fato de possuir uma síntaxe limpa e de fácil aprendizado. Permite trabalhar com variáveis e diversos comandos de servidor dentro da própria view e também permite criar partials no template.
  • 14. Instalação  Para instalar o node e o NPM no ubuntu é muito fácil.  Abra o console e execute os seguintes comandos:  sudo apt-get update  sudo apt-get install -y python-software-properties python g++ make  sudo add-apt-repository -y ppa:chris-lea/node.js  sudo apt-get update  sudo apt-get install nodejs  ou então, dependendo da sua versão do ubuntu.  sudo apt-get install nodejs  Para instalar o NPM basta executar os seguinte comando  curl http://npmjs.org/install.sh | sudo sh
  • 15. Vamos testar, escrevendo um helloworld.js  Abra um editor de texto de sua preferencia e digite:  var http = require('http');  http.createServer(function (req, res) {  res.writeHead(200, {'Content-Type': 'text/plain'});  res.end('Hello Worldn');  }).listen(1337, "127.0.0.1");  console.log('Server running at http://127.0.0.1:1337/');  salve e rode o arquivo usando o comando:  node helloworld.js  após rodar, será exibido no console o texto Hello World.

Notas do Editor

  1. Node.js é uma plataforma para construção de aplicações de rede (especialmente do lado do servidor) altamente escalaveis. Node.js usa JavaScript como linguagem de script, e alcança um alto rendimento devido ao fato de trabalhar com Threads Não-Bloqueantes (Single Thread).