Introdução a NodeJS

Uma imersão teórica em NodeJS, plataforma para o desenvolvimento com Javascript do lado do servidor. O que é node, quem está usando e por que é uma boa ideia aprender Node.JS.

Por Miguel Angel Alvarez - Tradução de Celeste Veiga


Publicado em: 18/2/13
Valorize este artigo:
 
Com este artigo começa o Manual de NodeJS de CriarWeb.com, que levará vocês ao longo de diversos módulos nos primeiros passos com esta plataforma para desenvolvimento. Será uma serie de artigos que estamos preparando com base na transcrição dos webcasts #nodeIO, emitidos em CriarWeb.com. No momento, nos primeiros passos nos encontramos na Introdução a NodeJS realizada no primeiro dos programas da serie, transmitidos em direto, por hangout, no canal de Youtube de Desarrolloweb.com. Temos que agradecer a apresentação a Alejandro Morales @_alejandromg desarrollador web, entusiasta do Open Source e experimentado programador em NodeJS.

NodeJS, conhecido habitualmente também com a palavra "node" simplesmente, surge em 2009 como resposta a algumas necessidades encontradas à hora de desenvolver web sites, especificamente o caso da assistência e da velocidade.

NodeJS é uma plataforma super-rápida, especialmente desenhada para realizar operações de entrada / saída (Input / Output ou simplesmente I/O em inglês) em redes informáticas por meio de distintos protocolos, apegada à filosofia UNIX. É ademais um dos atores que provocou, junto com HTML5, que Javascript tenha ganhado grande relevância nos últimos tempos, pois conseguiu levar a linguagem a novas fronteiras como é o trabalho do lado do servidor.

Neste artigo pretendemos explicar o que é Node, para que se utiliza, por que é bom aprendê-lo já e alguns dos projetos mais relevantes criados com esta tecnologia, e que muitos de nós conhecemos.
 

O que é NodeJS?

"Node Yei es", tal como se pronuncia NodeJS em inglês, é basicamente um framework para implementar operações de entrada e saída, como dizíamos anteriormente. Está baseado em eventos, streams e construído encima do motor de Javascript V8, que é com o que funciona o Javascript de Google Chrome. Ao longo deste artigo daremos mais detalhes, mas no momento nos interessa abrir a mente a um conceito diferente do que podemos conhecer, pois NodeJS nos traz uma nova maneira de entender Javascript.

Se queremos entender esta plataforma, o primeiro que devemos fazer é nos desprendermos de varias ideias que os desenvolvedores de Javascript cristalizamos ao longo dos anos que levamos usando essa linguagem. Para começar, NodeJS se programa do lado do servidor, o que indica que os processos para o desenvolvimento de software em "Node" se realizam de uma maneira muito diferente dos de Javascript do lado do cliente.

Dentre alguns dos conceitos que mudam por estar Node.JS do lado do servidor, está o assunto do "Cross Browser", que indica a necessidade no lado do cliente de fazer código que se interprete bem em todos os navegadores. Quando trabalhamos com Node só necessitamos nos preocupar com que o código que se escreva seja executado corretamente no seu servidor. O problema maior que talvez possamos encontrar à hora de escrever código seja fazê-lo de qualidade, pois com Javascript existe o problema habitual de se produzir o que se chama "código espaguete", ou código de má qualidade que depois é muito difícil de entender a simples vista e de manter no futuro.

Outras das coisas que você deveria ter em conta quando trabalha com NodeJS, que veremos com detalhes mais adiante, são a programação assíncrona e a programação orientada a eventos, com a particularidade de que os eventos nesta plataforma são orientados a coisas que acontecem do lado do servidor e não do lado do cliente como os que conhecemos anteriormente em Javascript "comum".

Além disso, NodeJS implementa os protocolos de comunicações em redes mais habituais, dos usados em Internet, como pode ser o HTTP, DNS, TLS, SSL, etc. Menção especial ao protocolo SPDY, facilmente implementado em Node, que foi desenvolvido majoritariamente por Google e que pretende modernizar o protocolo HTTP, criando um sistema de comunicações que é sensivelmente mais rápido que o antigo HTTP (apontam um rendimento 64% superior).

Outro aspecto sobre o que está baseada nodeJS são os “streams", que são fluxos de dados que estão entrando em um processo. Veremos isso com detalhes mais adiante.
 

Quem usa NodeJS?

Existem vários exemplos de sites e empresas que já estão usando Node em sites em produção e alguns casos de sucesso que são realmente representativos. Talvez o mais comentando seja o de LinkedIn, a plataforma de contato entre profissionais a modo de rede social. Ao passar a NodeJS, LindkedIn reduziu sensivelmente o número de servidores que tinham em funcionamento para dar serviço a seus usuários, especificamente de 30 servidores a 3.

O que sim fica claro é que NodeJS tem um footprint de memória menor. Ou seja, os processos de NodeJs ocupam níveis de memória sensivelmente menores que os de outras linguagens, de modo que os requisitos de servidor para atender ao mesmo número de usuários são menores. Para dar uma ideia próxima, poderíamos chegar a ter 1.000 usuários conectados ao mesmo tempo e o processo de NodeJS ocuparia somente 5 MB de memória. Ao final, tudo isto se traduz em que empresas grandes podem ter uma economia importante em custos de infraestrutura.

Outros exemplos, ademais de LinkedIn são eBay, Microsoft, empresas dedicadas a hosting como Nodester ou Nodejitsu, redes sociais como Geekli.st, e muitos mais. Podemos obter mais referencias acerca de casos de uso e empresas que implementan NodeJS no link nodeknockout.com que é um hackaton onde se realizaram aplicações em Node.
 

Por que Node.JS é uma tecnologia que se pode usar agora mesmo

Node.JS é uma plataforma recente e que sofreu muitas mudanças ao longo de sua criação. Na verdade, no momento de escrever este artigo ainda não tinha sido apresentado o release 1.0, e por essa razão muitos desenvolvedores o tomaram com certa distancia. Atualmente se encontra à disposição a versão 0.8.15.

Inicialmente, é certo que sofreu bastantes modificações, um tanto radicais, em seu API, o que obrigou diversos profissionais que apostaram em Node desde o começo, a reciclar seus conhecimentos rapidamente e refazer seu código em alguma ocasião. No entanto, já há algum tempo estabeleceram o compromisso em NodeJS a não mudar o API e a continuar com a mesma arquitetura, realizando apenas mudanças a nível interno.

Isto nos faz entender que é um bom momento para aprender NodeJS sem temor a que o que aprendamos acabe rapidamente em desuso.
 

Mais tecnologias e frameworks baseados em NodeJS

Nem tudo termina com NodeJS, na atualidade existem diversos projetos interessantes que baseiam seu funcionamento em Node e que nos dão uma ideia da maturidade que está adquirindo esta plataforma. É o caso de projetos como:

Meteor JS: Um framework Open Source para criar aplicações web rapidamente, baseado em programação com "Javascript puro" que se executa sobre o motor de Node.JS.

Grunt: Um conjunto de ferramentas que ajudam você como desenvolvedor web Javascript. Minifica arquivos, os verifica, os organiza etc. Tudo baseado em linha de comandos.

Yeoman: Outra ferramenta, esta vez baseada em Grunt, que ainda oferece mais utilidades que ajudam a simplificar diversas tarefas na criação de projetos, baseados em muitas bibliotecas e frameworks habituais como Bootstrap, BackboneJS...

Estes são alguns exemplos que destacou Alejandro, entre muitos outros que há na Internet. São programas baseados em Node que nos facilitam trabalhos de desenvolvimento de aplicações web.
 

Conclusão

Neste artigo pudemos encontrar uma base teórica de NodeJS, que é muito boa para saber um pouco melhor o que é esta tecnologia e quais são as vantagens que nos pode trazer seu uso. Está claro que há muitas outras coisas que vocês vão querer saber sobre Node e convidamos vocês a continuar descobrindo conosco.

No artigo seguinte explicaremos onde se consegue NodeJS e como você o instala. Tudo isso a partir do website do próprio NodeJS.

Ademais, convidamos você a continuar vendo o vídeo #nodeIO introdução a Node.JS do que este texto é uma mera transcrição. Neste texto, reunimos desse vídeo somente até o minuto 22, de modo que nos falta muito por ver.
 






Usuários :    login / registro

Manuais relacionados
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato