Node.js é um runtime de JavaScript, criado por Ryan Dahl em 2009. Foi desenvolvido em cima do motor JavaScript V8 — engine criada pelo Google e utilizado no Chrome e Chromium — , que leva o processamento e renderização do JavaScript para o lado do servidor.
Node.js usa um modelo de I/O não bloqueante orientada a evento que o torna leve e eficiente, que possibilita criar aplicações rápidas, escaláveis e estáveis. Desde seu surgimento, vem ganhando crescente espaço entre profissionais de tecnologia do Brasil e do mundo.
Já pensou, poder utilizar javascript no back-end , com a mesma segurança proporcionada por linguagens como PHP e ASP.NET?!
Para quem já tem certa experiência com desenvolvimento web (certamente conhece a limitação de uso do Javascript no front-end ) nunca iria imaginar essa possibilidade.
Agora estamos em uma era diferente, onde praticamente todas as grandes limitações do Javascript não existem mais. A cada dia infinitas possibilidades surgem e diversas referências vem aderindo a esse avanço.
Por que (e quando) utilizar Node.js?
Vou listar pontos cruciais, alguns já mencionados anteriormente, que irão te esclarecer o porquê de utilizar o Node.js:
- Assíncrono ;
- I/O sem bloqueios ;
- Alta performance ;
- Escalabilidade fácil e barata ;
- Loop de eventos.
Um detalhe que toma a dianteira em relação aos concorrentes é o loop de eventos. Irei explicar melhor como isso funciona.
Geralmente, um jeito “tradicional” de lidar com muitas requisições é criando múltiplas threads, ou seja, para cada requisição é criada uma thread. Nela é tratada a requisição e somente após o retorno deste tratamento a thread é finalizada. Porém, muito recurso é gasto nesse processo e muitas vezes de forma desnecessária, já que nem sempre todo aquele recurso reservado é utilizado e a thread fica “estacionada” enquanto o tratamento não estiver concluído.
Quando uso o termo “tratamento” me refiro a qualquer processo feito antes de devolver uma resposta, seja uma consulta no banco, verificação de arquivo, cálculo…
Já o Node.js, trata toda e qualquer requisição em uma única thread.
Aí você me pergunta: Então como é possível ele ser tão performático?
Quando ele recebe uma requisição, ao invés de esperar o resultado do tratamento desta, ele segue com a próxima requisição e assim por diante, como uma fila. Quando alguma requisição em espera tiver seu tratamento finalizado, é sinalizado um evento que a retornará o quanto antes.
Isso quer dizer que, com o Node.js, temos um ganho muito grande de número de requisições que podem ser processadas.
Node.js não é apenas um servidor, já que hoje em dia pode ser utilizado para criar até mesmo aplicações desktop. Também é ótimo para realizar diversos tipos de projetos, como:
- APIs (principal uso);
- Aplicações web real-time como servidores de chat ou aplicações colaborativas entre múltiplos usuários (socket);
- Jogos multiplayer;
- Aplicações que demandam alta escalabilidade;
- Servidores de streaming de dados;
Quando não utilizar?
Por usar somente uma thread, ele não serve para lidar com algoritmos complexos que consumam muita CPU, como edição de imagens, por exemplo. Isso impediria a execução de outras ações até o processamento estar completo.
Quem já utiliza?
Então quer dizer que não é só uma “modinha”?
Aqui vai uma lista de empresas conhecidas que utilização esta linda tecnologia:
- Walmart;
- PayPal;
- Groupon;
- Netflix;
- LinkedIn ;
- New York Times;
- Flickr ;
- Mozilla ;
- Yahoo.
Obrigado e até mais!
Esta é minha primeira postagem. Se você gostou do meu texto, me acompanhe e terá mais informações em breve.
Quer saber mais sobre o assunto ou tem alguma dúvida? Deixe um comentário. Ah, estou aberto a críticas também.
Top comments (0)