Node.js: JavaScript com Google V8 no servidor



Documentos relacionados
Prof. Romulo Fagundes Cantanhede. Node.JS. O poder do JavaScript do lado do Servidor

JavaScript. Carlos Santos LabMM 3 - NTC - DeCA - UA Aula 03,

Tudo o que Você Sempre Quis Saber Sobre Linguagens de Programação* (*Mas Tinha Medo de Perguntar) Diego Padilha Rubert FACOM

Scilab. Introdução ao Scilab. Como obter ajuda

Programação para web JavaScript

Mapa Mental de Data Warehouse - OLAP

Cartilha Explicativa sobre o Software de Medição de Qualidade de Conexão (Serviço de Comunicação Multimídia)

II Semana TI. Curso ASP.NET AJAX. Raphael Zanon Rodrigues UNIVEM - Prof. Elvis Fusco

INTRODUÇÃO AO JAVA PARA PROGRAMADORES C

Práticas de Desenvolvimento de Software

Introdução ao Plone. terça-feira, 4 de agosto de 15

RESTAURAÇÃO NO WINDOWS 8

Organização de Computadores Software

17 a 20 de agosto de 2010, Rio de Janeiro. Projeto Web Grupo Águas do Brasil Flavia Garcia

Fina Flor Cosméticos obtém grande melhoria nos processos e informações com suporte SAP Business One

discos impressora CPU memória AULA 04 - Estruturas de Sistemas Computacionais Operação dos sistemas de computação Controlador de disco

Programação Orientada a Eventos no lado do servidor utilizando Node.js

WEBDESIGN. Professor: Paulo Marcos Trentin - paulo@paulotrentin.com.br Escola CDI de Videira

XDOC. Solução otimizada para armazenamento e recuperação de documentos

Serviços Web: Introdução

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Modelos de Arquiteturas. Prof. Andrêza Leite

Sistemas Operacionais

1

Curso de Aprendizado Industrial Desenvolvedor WEB

Começando com Ruby on

Sistemas Distribuídos

IBM Software Demos Rational Software Delivery Platform - Teste automatizado

Guia para o Google Cloud Print

Oficina de Programação em Python direcionada para o desenvolvimento de jogos

Guia para o Google Cloud Print

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -ARQUITETURAS DE APLICAÇÃO MÓVEL. Prof. Angelo Augusto Frozza, M.Sc.

Ambiente Virtual de Aprendizagem Moodle

2 de maio de Remote Scan

Oportunidades 05/05/2015

Guia de Atualização Release FoccoERP 3.16

CP C U P U - Un U i n da d d a e d e Ce C n e t n ral a de d e Pr P oc o es e sam a e m n e t n o o Pr P oc o es e sad a o d r o Aula 03

Ruby. Simplicidade e produtividade

Processos e Threads (partes I e II)

Online Help StruxureWare Data Center Expert

Seu manual do usuário SONY ERICSSON K550I

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais

Guia para o Google Cloud Print

Informática Parte 25 Prof. Márcio Hunecke

API de Integração JavaScript

Dispositivos de Entrada e Saída

VERIFIQUE SE SEUS SITES ESTÃO PRONTOS PARA O BLACK FRIDAY 11 MANEIRAS DE ACABAR COM OS PROBLEMAS DE DESEMPENHO

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

Apache + Módulo Deflate = Economia de Banda

Documentação Symom. Agente de Monitoração na Plataforma Windows

5. Links de bibliotecas (off-line) Localiza bibliotecas que tenham uma cópia imp 6. Como entender um resultado de pesquisa. Sobre o Google Acadêmico

Computação nas Nuvens

SEGMENTAÇÃO DE LEADS. Exemplos de critérios de segmentação para identificar o estágio dos seus Leads VECTOR

Patrick Augusto Gonçalves

ATENÇÃO: Este post é atualizado toda vez que alguma função é inserida ou removida da ferramenta.

PORTARIA N Nº Rio de Janeiro, 24 de Outubro de 2013.

USER EXPERIENCE. Luis Felipe Fernandes. UX Academy.

Processamento de Dados

Linguagem de Programação Procedural (VB) Prof. MSc Eng Marcelo Bianchi AULA 01 - INTRODUÇÃO AO VB

CURSO EFA DE TÉCNICO DE INFORMÁTICA E SISTEMAS. Módulo 788- Administração de Servidores Web. Ano letivo Docente: Ana Batista

Introdução à Tecnologia Web. Tipos de Sites. Profª MSc. Elizabete Munzlinger

GEOS GERENCIAMENTO DE ORDENS DE SERVIÇO.

Programação em LabVIEW Real- Time e LabVIEW FPGA

Metasploit Sabe o que é?

sala de aula SMART Sync 2010 para sistemas operacionais Windows.

Teste de Qualidade Web based para Banda Larga FAQs

Desenvolvendo Websites com PHP

Manual para Cadastro de Questões Prova Colegiada / Professor

Como criar um formulário de pesquisa usando o Google Drive

Processo de Desenvolvimento de Software. Engenharia de Software.

Prezado aluno, 1 - ) Clique no link que segue: ) Clique em iniciar teste: 3-) Verifique a velocidade:

3 Dicas MATADORAS Para Escrever s Que VENDEM Imóveis

FUNDAMENTOS DE HARDWARE COMO FUNCIONA UM PC? Professor Carlos Muniz

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Software de gerenciamento de impressoras

Sistemas Operacionais

Sumário. Parte I Introdução Introdução O Rails é ágil Explorando o conteúdo Agradecimentos... 19

Orientação a Objetos

Sumário. Introdução ao Universo Linux Parte I

ILHA I GERENCIAMENTO DE CONTEÚDO CMS DISCIPLINA: Introdução à Computação MÓDULO II Memórias e Processamento

Estratégias para testes: a metáfora da pirâmide alimentar

Mas vamos ao que interessa! Qualquer dúvida ou falha da minha parte que vier a surgir, estou a disposição através do jgcosta@ymail.com.

WiFi do Push2TV (SSID) e conecte-se a ela. 4. Abra um navegador e digite na barra de URL. 5. Atualize o firmware e instale-o.

Como funciona a Solução NFC-e ifox. Iniciar a utilização da NFC-e

JavaScript. JavaScript é uma linguagem de script usada em navegadores web. É uma linguagem dinâmica, estruturada e orientada em objetos.

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Transcrição:

Luciano Ramalho luciano@ramalho.org Node.js: JavaScript com Google V8 no servidor

Luciano Ramalho Programando por prazer desde 1978, profissionalmente desde 1982 Arquiteto de soluções Web desde 1994 1º diretor técnico do Brasil Online, na Abril S/A Muitos clientes e alguns empregos desde então, quase sempre atuando na Web (server-side) Agora: Oficinas Turing e Academia Python na Globalcode

Demonstração bandeiras.js etc.* * http://github.com/oturing/nodejs

Node.js... É um ambiente de execução para usar JavaScript fora do navegador linha de comando + console interativo Incorpora o engine de JavaScript Google V8 aquele do Google Chrome, ECMAScript 5 Inclui bibliotecas para fazer programação de I/O orientada a eventos (modo assíncrono)

Arquitetura

Demonstração console interativo

Node.js: console (REPL) > function agora() {... var dt = Date().slice(16,24);... console.log(dt);... } undefined > agora(); 13:50:17 undefined >

Programação assíncrona?

O restaurante síncrono

O restaurante síncrono

O restaurante síncrono

O restaurante síncrono

O restaurante síncrono

O restaurante síncrono

O restaurante síncrono

O restaurante assíncrono

O restaurante assíncrono

O restaurante assíncrono

O restaurante assíncrono

O restaurante assíncrono

O restaurante assíncrono

O restaurante assíncrono

Programação assíncrona =callback

Demonstração hora*.js, sigint*.js, stat*.js * http://github.com/oturing/nodejs

hora.js Com isso o shell do *nix consegue executar o script O 2º console.log acontece antes do primeiro * http://github.com/oturing/nodejs

hora2.js Tempos diferentes * http://github.com/oturing/nodejs

hora3.js Cada chamada dispara a próxima, com atraso aleatório Iniciar * http://github.com/oturing/nodejs

statsync.js Importação de módulos Common.js Invoca a função statsync do módulo fs. Saída padrão: stdout * http://github.com/oturing/nodejs

stat.js: chamada assíncrona Callback: esta função é invocada quando o SO responde o stat, milhões de ciclos depois * http://github.com/oturing/nodejs

sigint.js Callback: invocada quando o operador tecla ˆC * http://github.com/oturing/nodejs

sigint2.js O primeiro callback associa um segundo callback ao mesmo evento * http://github.com/oturing/nodejs

sigint3.js O que faz esta chamada?

sigint3.js Ela constrói e retorna uma função sob medida

sigint3.js Variável livre: não é definida no escopo desta função

sigint3.js Closure é um puxadinho do escopo da função

E o que eu ganho com todo este trabalho?

Acessar o cache L1 é......como pegar um papel sobre a sua mesa Analogia do Ryan Dahl

Acessar o cache L2 é......como pegar um papel em uma gaveta

Acessar a RAM é......como pegar um papel em um armário

Acessar a rede é...

Acessar a rede é...

Acessar a rede é...

Acessar a rede é......como ir buscar um papel no Japão

Tempos de acesso ciclos de CPU cache L1 3 cache L2 14 RAM 250 Dados aproximados citados por Ryan Dahl* disco 41.000.00 rede 240.000.000 * http://www.youtube.com/watch?v=m-sc73y-zqa

Decifrando o hello world

Decifrando o hello world

Decifrando o hello world

Eco-sistema Produto experimental, APIs mudando (v. 0.6.x) Framework Web: Express, comparável a Flask (Python) ou Sinatra (Ruby) nada tão completo quanto Django ou Rails Centenas de bibliotecas de terceiros, livres* Hospedagem especializada gerenciados: Joyent, Heroku, Nodegrid; VPS etc. * https://github.com/joyent/node/wiki/modules

Cocktails Mojito Manhattan outros drinks...?

Evitando o pior do JS use strict sempre, sem medo de ser feliz CoffeScript, Clojure etc. no server-side, ninguém liga se você usar outra linguagem, desde que ela gere código JavaScript ECMAScript 5 no server-side o ambiente é controlado: o único engine que te interessa é o V8

Luciano Ramalho luciano@ramalho.org @ramalhoorg oficina online: JavaScript moderno com Node.js e testes automatizados * http://pre-node.turing.com.br