O que é Node.js?
Alex Ribeiro
Posted on September 27, 2019
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.
Posted on September 27, 2019
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
November 29, 2024
November 28, 2024