Node.js

50 %
50 %
Information about Node.js
Technology

Published on March 7, 2014

Author: ruanmyv

Source: slideshare.net

Description

Uma breve introdução a plataforma Node.js.

node.js Introdução

node.js? - Ryan Dahl - Criado em 2009 - Escrito em C++ e Javascript - Multiplataforma (Linux, Windows e Mac) - Foco em alta escalabilidade e em tempo real - Versão atual: 0.10.26 / Fev 18, 2014 - Open Source mantido pela Joyment https://github.com/joyent/node

O que é? - Plataforma para utlizar Javascript fora do navegador. (Focada em servidores) - Escrita sobre interpretador V8 do Google Ou seja, essa plataforma é escrita com códigos C++ e Javascript - Baseada em eventos - I/O não bloqueante

Servidores “Comuns”

Servidores que usam Node.js

Quer dizer que... - Você tem o poder do Javascript para criar aplicações orientadas a eventos e assíncronas em qualquer máquina. - Sua premissa é facilitar a construção de aplicações de rede (servidores web, etc.) sem bloqueio de leitura e escrita. - Ao instalar o node, o mesmo já vem com uma biblioteca inicial muito poderosa. http://nodejs.org/api - Comunidade de desenvolvedores extremamente entusiasmada.

What? var http = require('http'); http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('Hello Worldn'); }).listen(1337, "127.0.0.1"); console.log('Server running at http://127.0.0.1:1337/'); >> node hello.js Server running at http://127.0.0.1:1337/'

Por que usar? - Aplicações com dados em tempo real - Aplicações com muitas, muitas requisições ao mesmo tempo - Aplicações com colaboração entre muitos usuários - Chats - Envios de dados (upload de arquivos) - Jogos - Servidor para diferentes protocolos ao mesmo tempo - APIs (Sim, web apis, bitches)

Por que NÃO usar? - Aplicações que utilizam muito processamento (redimensionamento de imagens, renderização de vídeos, cálculos matemáticos pesados, etc.) - Simples páginas HTML - Aplicações baseadas em conteúdo, CRUDs, com muitas regras de negócio - Aplicações dependentes de bancos de dados relacionais

Empresas que utilizam Mais em: http://nodejs.org/industry/ e: http://bit.ly/1kBolIL

Então, node.js é... - Plataforma para desenvolver aplicações com Javascript - Com foco em para alta escalabilidade para alta concorrência - Performance com altas cargas de acesso - Multiplataforma - Comunidade de desenvolvedores super ativa - Ainda imatura - Não soluciona todos os problemas do mundo

Fim Tchau, comercial

node.js js fora do seu navegador

The good stuff - Javascript - Fácil de instalar (hoje é) - Multiplataforma - V8 - Pacotes, muitos pacotes - Event Loop - Conduz os desenvolvedores ao mindset de “Evented/Async I/O”

Event Loop - Single-Thread que escuta por todas requisições ao servidor - Ao receber req. que precisam realizar operações bloqueantes (acesso a disco, computação pesada, etc), criar uma tarefa async para o SO e guarda um callback para esse tarefa - Continua recebendo outras requições, até receber a resposta da tarefa enviado o SO, então executa o callback, espera até estar livre e executa esta respota - Abstrai toda implementação de gerenciamento de threads, consumo de memória, etc

Multi-threaded HTTP server

Node.js Server

Multi vs Single threaded concurrency Multi-threaded concurrency Single threaded concurrency

Sync vs Async I/O Synchronous I/O Asynchronous I/O

Alguns problemas - É Javascript Algumas bizarrices (www.wtfjs.com) Facilidade em não seguir padrões Não é orientado a objetos - Por default, exceções matam o processo - Vazamentos de memória difíceis de encontrar - Ainda é beta (~v 0.10.26) - Single thread trava em códigos de alto processamento - Falta de maturidade para utilizar bancos de dados relacionais

“I got 99 problems but a callback aint one” Callback HELL

npm - node packeges manager - É o gerenciador de pacotes oficial do node. - Nele já são mais de 61k pacotes escritos pela comunidade de desenvolvedores. - Instalado junto ao node, que é uma dependência (óbvia) para o uso do npm. - Utilizado através da linha de comando, possuí uma API poderosa para a instalação e busca de pacotes. https://www.npmjs.org/doc/

Utilizando o npm: Instalando pacote

Utilizando o npm: Baixando pacotes Na pasta root do projeto, criar o arquivo packages.json. { 'name': 'mini-chat' , version: '0.0.1', description: 'Chat app.', engines: { 'node': '>= 0.6.x', npm: '>= 1.1.x' }, dependencies: { 'express': '>= 2.x.x', now: '>= 0.x.x' }, }

Utilizando o npm

Exemplos SHOW ME THE CODE https://github.com/ruanmyv/node-examples

Hello world hello-app

Numbers numbers-app

Chat chat-app

Express express-app

Fim²

Show me the links!! http://nodebr.com/ http://howtonode.org/ http://nodejs.org/ https://github.com/joyent/node http://www.nodebeginner.org/ http://callbackhell.com/ Why The Hell Would I Use Node.js? A Case-by-Case Introduction Node Tools for VS - Youtube Introducing node.js Tools for Visual Studio Node.js para iniciantes O que é npm do nodejs O que exatamente é o Node.js? What are the disadvantages of using Node.js? Node.js for Beginners Java EE threads v/s Node.js – which is better for concurrent data processing operations Beginner’s Guide To Node.Js (Server-Side JavaScript) Node.js para leigos

Show me the links!! Slideshare - Node.js: serious business Slideshare - Node.js campus party brasil 2011 Future-proofing Your Apps: Cloud Foundry and Node.js 7 minimal Node.js webframeworks Concurrent programming for scalable web architetures You’ll never believe how LinkedIn built its new iPad app (exclusive) [Linkedin] Blazing fast node.js: 10 performance tips from LinkedIn Mobile [Linkedin] Here's why you should be happy that Microsoft is embracing Node.js [Microsoft] Yahoo! Announces Cocktails Shaken, Not Stirred [Yahoo] Why Walmart is using Node.js [Walmart] Fluent 2013: Bill Scott, "Clash of the Titans: Releasing the Kraken | NodeJS @paypal" [Paypal]

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

Node.js

Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js' package ecosystem, npm, is the largest ecosystem of ...
Read more

Node.js – Wikipedia

Architektur. Die Programmiersprache JavaScript gibt eine ereignisgesteuerte Architektur vor. Diese hat im Serverbetrieb den Vorteil, pro bestehender ...
Read more

Download | Node.js

Downloads. Current version: v4.4.5 ... Download the Node.js source code or a pre-built installer for your platform, and start developing today. LTS.
Read more

NodeCode.de | Infos und Tutorials zu Node.js

NodeCode ist ein deutsch-sprachiges Portal zu Node.js. Hier findest du Infos, Anleitungen und Tutorials rund um die Themen NodeJS, JavaScript und ...
Read more

PHP oder Node.js? – Vorteile und Nachteile | NodeCode

Dieser Artikel stellt PHP und Node.js gegenüber, und zeigt deren Vor- und Nachteile auf. Während in dem vorherigen Artikel die Gemeinsamkeiten und ...
Read more

Node.js: Das JavaScript-Framework im Überblick | t3n

JavaScript auf Serverseite. JavaScript auf Serverseite? Was absurd klingt, macht die Bibliothek Node.js möglich. In Verbindung mit HTML5-Technologien ...
Read more

Node.js - Wikipedia, the free encyclopedia

Node.js is a Javascript runtime environment that processes incoming requests in a loop, called the event loop. Threading. Node.js operates on a single ...
Read more

Node.js. Das umfassende Handbuch von Sebastian Springer

Das Buch bietet Ihnen einen guten Einstieg in das Universum von Node.js. Diese Skriptsprache ist eine der derzeit schnellsten JavaScript-Implementi...
Read more

The Node Beginner Book » A comprehensive Node.js tutorial

A comprehensive Node.js tutorial for beginners: Learn how to build a full blown web application with server-side JavaScript
Read more

Node.js - Download - heise online

Download: Node.js 6.2.1, kostenlos. Über Node.js: JavaScript-Anwendungsframework zur Entwicklung skalierbarer Netzwerk-Programme; die mit Events ...
Read more