Veja o que é e as vantagens da tecnologia Node.js

tecnologia Node.js

A tecnologia Node.js é um ambiente de execução do JavaScript voltado para o Server Side Render (SSR), não dependendo de um navegador. 

Entre as suas características está a utilização de um motor V8, single-thread. No decorrer desse artigo, você compreenderá com mais profundidade o que é Node.js. esse ecossistema maravilhoso. 

O artigo será bem teórico, mas, por meio dele, você entenderá porque o Node.js funciona dessa forma. 🙈

O que é V8

Você provavelmente já ouviu que a tecnologia Node foi construída no motor JavaScript V8 do Google Chrome. Mas afinal, o que é esse V8? 

Ele é um motor open-source do JavaScript de alto desempenho do Google. Foi escrito na linguagem de programação C++. Apesar de ser do Chrome, é utilizado em ambientes similares e não precisa de um navegador para rodar, podendo ser executado de forma independente. 

O V8 foi projetado para aumentar o desempenho de execução do JavaScript em navegadores web, convertendo o código de alto nível para o de baixo nível (linguagem de máquina). 

Essa compilação é realizada em tempo de execução, o famoso Just In Time — responsável por buscar a precisão realizando as execuções conforme a demanda, aumentando a eficiência e reduzindo custos.

O que é single-thread

Basicamente, single-thread significa que rodará apenas uma requisição por vez, por isso o tempo de processamento não pode demorar e deve ser não bloqueador (como ficar esperando o banco de dados). Por isso, qualquer processamento demorado deve ser delegado para outro processo. 

Eis o grande pulo do gato na tecnologia Node.js, pois ele usa diversas threads internamente por conta do V8, porém isso é exposto ao JavaScript. 

O responsável por essa proeza é o Event Loop — uma ferramenta que agrega diversas threads para otimizar o processamento. Quando precisa realizar uma operação mais pesada, o Event Loop solicita uma nova thread com um callback para cuidar daquela operação. Ele gerencia quando determinada função deverá executar. 

Exemplo: temos diversas pilhas de operações na stack para serem executadas. Se essa operação for rápida, o Event Loop vai simplesmente executá-la e ir para a próxima (single-thread, uma por vez). 

Mas caso essa operação seja considerada longa, o Event Loop irá solicitar uma nova thread com um callback (chamada de retorno) para ir rodando em segundo plano. Enfim, o Event Loop prossegue na execução de outras operações. 

Quando aquela operação longa for concluída, a função callback será acionada e aguardará o Event Loop finalizar a operação que ele está realizando no momento para voltar à stack e ser executada.

Vantagens e desvantagens do Node.js

Vantagens

Altamente escalável, o Node.js utiliza JavaScript, multiplataforma, desenvolvimento e tempo de resposta rápido e capacidade de reutilizar código. 

Desvantagens

O Loop de Eventos torna o tratamento de erros mais difícil, não é tipado (mas você resolve isso utilizando o Node com o TypeScript).

Algumas empresas que utilizam o Node.js

Essas são algumas empresas que utilizam o Node, segue a lista abaixo: 

  • Netflix; 
  • Paypal; 
  • Uber; 
  • Udemy; 
  • IBM; 
  • LinkedIn; 
  • Trivago; 
  • Figma; 
  • NASA.

Conclusão

É imprescindível que um(a) desenvolvedor(a) JavaScript conheça o Node.js. A compreensão desse ecossistema irá te auxiliar no desenvolvimento dos próximos projetos, pois você entende como a tecnologia Node.js funciona e, por consequência, a melhor forma de usufruir desses benefícios. 

Agora que você já concluiu a leitura, que tal colocar a mão na massa (ou no código) e responder aos testes técnicos da Coodesh? Somos uma plataforma de recrutamento e de code assessment. Confira aqui.

Escrito por Cristiano Albano

Aficionado por tecnologia, dedico tempo para conhecer novas ferramentas e soluções para os problemas do desenvolvimento. Busco aliar as bases tecnológicas e educacionais para melhorar a qualidade de vida das pessoas. Atualmente, sou CTO e co-founder da Coodesh.

http e https

Entenda a diferença entre HTTP e HTTPS

o que é next.js

O que é Next.js?