node.js - #1 - introdução - rodrigo branas

Post on 15-Apr-2017

1.362 Views

Category:

Internet

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

A forma como a maior parte das plataformas lida com I/O está errada

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?

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

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.

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

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

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 ...

+

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?

Quer começar a utilizar Node.js?

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

top related