Pereira Caio Ribeiro - Node.js. Aplicacoes web real time com Node.js стр 2.

Шрифт
Фон

Bacharel em Sistemas de Informação pela Universidade Católica de Santos, blo-

gueiro nos tempos livres, apaixonado por programação, web, tecnologias, filmes e

seriados.

Participante das comunidades:

NodeBR: Comunidade Brasileira de Node.js

MeteorBrasil: Comunidade Brasileira de Meteor

DevInSantos: Grupo de Desenvolvedores de Software em Santos

Iniciei em 2011 como palestrante nos eventos DevInSantos e Exatec, abordando

temas atuais sobre Node.js e Javascript.

Autor dos Blogs: Underground WebDev e Underground Linux.

v

Casa do Código

Prefácio

As mudanças do mundo web

Tudo na web se trata de consumismo e produção de conteúdo. Ler ou escrever blogs,

assistir ou enviar vídeos, ver ou publicar fotos, ouvir músicas e assim por diante. Isso fazemos naturalmente todos os dias na internet. E cada vez mais aumenta a necessidade dessa interação entre os usuários com os diversos serviços da web. De fato, o

mundo inteiro quer interagir mais e mais na internet, seja através de conversas com

amigos em chats, jogando games online, atualizando constantemente suas redes so-

ciais ou participando de sistemas colaborativos. Esses tipos de aplicações requerem

um poder de processamento extremamente veloz, para que seja eficaz a interação

em tempo real entre cliente e servidor. E mais, isto precisa acontecer em uma escala

massiva, suportando de centenas a milhões de usuários.

Então o que nós desenvolvedores precisamos fazer? Nós precisamos criar uma

comunicação em tempo real entre cliente e servidor que seja rápido, atenda muitos

usuários ao mesmo tempo e utilize recursos de I/O (dispositivos de entrada ou saída)

de forma eficiente. Qualquer pessoa com experiência desenvolvimento web sabe que

o HTTP não foi projetado para suportar estes requisitos. E pior, infelizmente exis-

tem sistemas que os adotam de forma ineficiente e incorreta, implementando solu-

ções workaround (Gambiarras) que executam constantemente requisições assín-

cronas no servidor, mais conhecidas como long-polling. Para sistemas trabalharem

em tempo real, servidores precisam enviar e receber dados utilizando comunica-

ção bidirecional, ao invés de utilizar intensamente requisição e resposta do modelo

HTTP através do Ajax. E também temos que manter esse tipo comunicação de forma

leve e rápida para manter escalável, reutilizável e fácil de manter o desenvolvimento

a longo prazo.

A quem se destina esse livro?

Esse livro é destinado aos desenvolvedores web, que tenham pelo menos conhe-

cimentos básicos de Javascript e arquitetura cliente-servidor. Ter domínio desses

vii

Casa do Código

conceitos, mesmo que seja um conhecimento básico deles, será essencial para que a

leitura desse livro seja de fácil entendimento.

Como devo estudar?

Ao decorrer da leitura serão apresentados diversos conceitos e códigos, para que

você aprenda na prática toda a parte teórica do livro. A partir do capítulo 4 até o

capítulo final, iremos desenvolver na prática um projeto web, utilizando os principais frameworks e aplicando as boas práticas de desenvolvimento Javascript para Node.js.

viii

Casa do Código

Sumário

Sumário

1

Bem-vindo ao mundo Node.js

1

1.1

O problema das arquiteturas bloqueantes

. . . . . . . . . . . . . . . .

1

1.2

E assim nasceu o Node.js . . . . . . . . . . . . . . . . . . . . . . . . . .

2

1.3

Single-thread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

1.4

Event-Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

1.5

Instalação e configuração . . . . . . . . . . . . . . . . . . . . . . . . . .

4

1.6

Gerenciando módulos com NPM . . . . . . . . . . . . . . . . . . . . .

7

1.7

Entendendo o package.json . . . . . . . . . . . . . . . . . . . . . . . . .

8

1.8

Escopos de variáveis globais . . . . . . . . . . . . . . . . . . . . . . . .

10

1.9

CommonJS, Como ele funciona? . . . . . . . . . . . . . . . . . . . . .

10

2

Desenvolvendo aplicações web

13

2.1

Criando nossa primeira aplicação web . . . . . . . . . . . . . . . . . .

13

2.2

Como funciona um servidor http? . . . . . . . . . . . . . . . . . . . . .

14

2.3

Trabalhando com diversas rotas . . . . . . . . . . . . . . . . . . . . . .

15

2.4

Separando o HTML do Javascript . . . . . . . . . . . . . . . . . . . . .

18

2.5

Desafio: Implementar um roteador de url . . . . . . . . . . . . . . . .

19

3

Por que o assíncrono?

21

3.1

Desenvolvendo de forma assíncrona . . . . . . . . . . . . . . . . . . .

21

3.2

Assincronismo versus Sincronismo . . . . . . . . . . . . . . . . . . . . 24

3.3

Entendendo o Event-Loop . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.4

Evitando Callbacks Hell . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

ix

Sumário

Casa do Código

4

Iniciando com o Express

31

4.1

Por que utilizá-lo? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31

4.2

Instalação e configuração . . . . . . . . . . . . . . . . . . . . . . . . . .

32

4.3

Criando um projeto de verdade . . . . . . . . . . . . . . . . . . . . . .

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке