O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

NodeJS - Tutorial de forma simples e pratica.

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Carregando em…3
×

Confira estes a seguir

1 de 50 Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Quem viu também gostou (12)

Anúncio

Semelhante a NodeJS - Tutorial de forma simples e pratica. (20)

Mais recentes (20)

Anúncio

NodeJS - Tutorial de forma simples e pratica.

  1. 1. Filipe Morelli
  2. 2. O que é NodeJS?  É um interpretador de código JavaScript que funciona do lado do servidor.  Seu objetivo é ajudar programadores na criação de aplicações de alta escalabilidade (como um servidor web), com códigos capazes de manipular dezenas de milhares de conexões simultâneas, numa única máquina física.  O Node.js é baseado no interpretador V8 JavaScript Engine (interpretador de JavaScript open source implementado pelo Google em C++ e utilizado pelo Chrome).
  3. 3. Servidores normalmente  Servidores apache  Uma thread para cada conexão  Requisição de I/O Bloqueante (latência)
  4. 4. Servidores normalmente  Uma thread usando 2mb de RAM  Uma thread usando 2mb de RAM- 2MB x 3.000 conexões silmutâneas = 6GB Isso é um grande problema.
  5. 5. Soluções Possíveis  Escalar verticalmente;  Escalar horizontalmente;  Desenvolver em outra linguagem de programação mais rápida;
  6. 6. Por que NodeJS?
  7. 7. Novos paradigmas  Chega de múltiplas threads, basta uma (single thread);  I/O Assíncronas;  Multiplexação.
  8. 8. NodeJS  Plataforma de fácil desenvolvimento para aplicações de rede altamente escaláveis;  Desenvolvimento em Java script no lado do servidor;
  9. 9. Arquitetura  Escrito em C/C++ e Javascript;  Baseado em Event Loop (epoll) utilizando libev;  Desenvolvido sobre a Javascript Engine V8(Google);
  10. 10. Mãos na massa!
  11. 11. Instalar NodeJS  Windows: • Baixar o arquivo nodejs msi e para instalar next, next....  Linux derivados do debian: • sudo apt-get install node  Linux derivados do Red Hat: • yum install node or rpm install node  Outros: • Para mais informações https://nodejs.org/en/
  12. 12. Primeiro teste em NodeJS  Depois de instalado digite no prompt de comando o seuiqnte comando: node ou nodejs -> enter • 1 + 1 -> enter • 2 resutado • var x = 15 -> enter • var y = 10 -> enter • x + y -> enter • 25 -> resultado • ctrl + c x2 -> para sair do node
  13. 13. Imagem descritiva
  14. 14. Criando um olá mundo Exemplo estático
  15. 15. Conteúdo dinâmico Conteúdo dinâmico e manipulação javascript
  16. 16. Gerenciador de pacotes Gerenciador de pacotes contem diversas bibliotecas prontas ou em desenvolvimento para desenvolvedores utilizarem.
  17. 17. Ganhos  Muitas bibliotecas  Agilidade no desenvolvimento  Evita a redundância  Praticidade com frameworks
  18. 18. Perdas  Falta de controle da aplicação apesar de serem de código fonte  Muitas bibliotecas para fazer a mesma coisa  Aprender muitas bibliotecas e framework para auxiliar no trabalho
  19. 19. Chamada de retorno  Callback é um assíncrono equivalente a função de retorno. Função callback é chamada para completar uma tarefa passada.  Por exemplo: • Você pode ler um arquivo de forma asincrona • Mandar uma requisição e depois executar a ação • Geralmente ações que não necessitem de mandar um retorno imediatamente
  20. 20. Emissão de Eventos  Node é de única aplicação thread, porém ele suporta concorrencia via concentimento de eventos e callbacks. Como toda API de Nodejs são assíncronas e comecao e somente uma thread, ele usa funções assíncronas para manter a concorrencia.  Node utiliza o padrão observador. Ele mantém thread em um ciclo de eventos e sempre que qualquer tarefa ficar concluída, ele aciona o evento correspondente que assimila a função de event listener para obter executado.
  21. 21. Objetos Globais
  22. 22. Módulos Em Node existem muitos modulos disponiveis para auxiliar no desenvolvimento. Além claro dos que possam ser desenvolvidos por outros programadores e usando o NPM.
  23. 23. Outros módulos úteis  OS: • Proporciona uma basica biblioteca de operações com Sistema Operacional (Independente de qual seja ele).  Path: • Proporciona utilitarios para manipulação de diretorios e caminhos;  Net: • Proporciona tanto no servidor quanto no cliente como uma elo.  DNS: • Proporciona funções para fazer o atual DNS lookup como resolvedor de nomes;  Domain: • Proporciona uma maneira de lidar com multiplos e diferentes requisições I/O como um unico grupo de operaçoes
  24. 24. Framework Desenvolvimento  Total.js Total.js é um Framework no lado do servidor para criação de um rico web site, aplicações web e REST servicos. O framework não contem qualquer aplicações e dependencias de terceiros. • "We made this great framework for you to help you growing your business" • https://www.totaljs.com
  25. 25. Framework Desenvolvimento Express Express é um framework de aplicações web mínimos e flexíveis Node.js. Express fornece um conjunto de robustos recursos para web e aplicações móveis. • http://expressjs.com  Instalar • npm install express --save
  26. 26. Meteor  Meteor é um framework open-source (MVC) para a construção de sites e aplicações móveis da web. Ele permite escrever ambas as partes de cliente e servidor de um aplicativo em JavaScript. conjunto de módulos pré-escrita, auto-suficientes do Meteor embutido torna a escrita de códigos de aplicação.  Seu modelo de programação reativa permite a criação de aplicações que utilizam menor código JavaScript. Além disso, Meteor é uma poderosa estrutura para a construção de aplicações em tempo real.  https://www.meteor.com/
  27. 27. Socket.IO  Socket.IO permite comunicação em tempo real com base em eventos bidirecional.  Ele funciona em todas as plataformas, navegadores ou dispositivo, concentrando-se igualmente sobre a confiabilidade e velocidade.  http://socket.io/  Exemplo • http://socket.io/demos/chat/ • http://socket.io/demos/weplay/
  28. 28. Total.js  Total.js é um Framework no lado do servidor para criação de um rico web site, aplicações web e REST servicos. O framework não contem qualquer aplicações e dependencias de terceiros.  "We made this great framework for you to help you growing your business“  https://www.totaljs.com
  29. 29. Curiosidades Apesar de Node.js ser conhecido como servidor web, muitas de suas funcionalidades se expandem e deixam essa ferramenta ainda mais poderos do que já é.
  30. 30. Gulp  Automatizar e melhorar o seu fluxo de trabalho.  http://gulpjs.com
  31. 31. Coffee Script  CoffeeScript é um pouco linguagem que compila em JavaScript. JavaScript sempre teve um coração lindo. CoffeeScript é uma tentativa de expor as partes boas do JavaScript de forma simples.  Implementa conceitos como forçar a identação de codigo.  Menos é mais.  Orrientação a Objetos de maneira mais clara.  http://coffeescript.org
  32. 32. TypeScript  Typescript é um super digitado de JavaScript , que compila para JavaScript simples. Qualquer browser. Qualquer host. Qualquer sistema operacional . Código aberto.  Foco trazer programadores de linguagens fortemente tipadas para o mundo Java Script.  Orientação a Objetos de forma explicita.  https://www.typescriptlang.org
  33. 33. Less  LESS é uma linguagem de folha de estilos dinâmica desenhada por Alexis Sellier. Ela foi influenciada por Sass e influenciou a nova sintaxe "SCSS" do Sass, que adaptou sua sintaxe de formação de blocos do tipo CSS.  Programação no mundo do CSS.  Redução de codigo CSS.  http://lesscss.org
  34. 34. Cordova/Phonegap  Plataforma para criarar aplicativos moveis com tecnologias web HTML, CSS, Java Script.  http://phonegap.com  https://cordova.apache.org
  35. 35. Electron  Criar aplicativos desktops atraves de tecnologias web HTML, CSS, Java Script, Além de possuir como server side Node.JS  http://electron.atom.io
  36. 36. Referências Bibliográficas • Node.js. Disponível em: <http://nodejs.org/> Acesso em 3 de Outubro de 2016. • Brincando com Node.js. Disponível em: http://akitaonrails.com/2010/03/16/brincando- com-node-js-tornado-and-thin Acesso em 3 de Outubro de 2016. • Event loop. Disponível em: <http://en.wikipedia.org/wiki/Event_loop> Acesso em 3 de Outubro de 2016. • CROWTHER, ROB. et al. Html5 em ação. São Paulo: NOVATEC, 2014

×