Skip to main content

Intro

nodejslogo

O NodeJS é um interpretador Javascript (js) que não depende do navegador, criando a possíbilidade de executar os códigos js em outros ambientes. A maioria dos navegadores tem internamente um interpretador javascript no seu core por isso são capazes de interpretar.

Falar de NodeJS é falar de Javascript. Ele revolucionou o Javascript pois trouxe essa linguagem para fazer muito mais do que criar frontend web e efeitos visuais.

Agora podemos criar:

  • Aplicações backend
  • CLIs
  • Aplicações desktop
  • Inteligência Artificial
  • Etc

O V8 é o motor Javascript da google que está presente no google chrome e é usado pelo NodeJS. É responsável por entender a linguagem.

Algumas bibliotecas aumentam as funcionalidades da linguagem, como por exemplo a libuv com foco em comunicação E/S assíncrona que permitem usar o nodejs para desenvolver backends.

Vantagens do node

  • Leve.
  • Usa pouca memória.
  • Bom aproveitamento de CPU.
  • Ecosistema de bibliotecas, módulos e plugins gigantesco e uma comunidade muito ativa.
  • Desempenho assíncrono e não bloqueante sendo ótimo para intensos I/O como chats, jogos, streamings, etc, pois gerencia com eficiência multiplas conexões.
  • Ótima escalabilidade por ter uma arquitetura baseada em eventos.
  • Facilitade no desenvolvimento em tempo real.
  • Fácil deploy.
  • Muita demanda de profissionais no mercado.
  • Usada no front e no backend podendo manter uma aplicação full stack javascript.

Desvantagens

  • Não é a linguagem com bom desempenho para operações computacionais pesadas que envolvem muitos cálculos. Calculos muito pesados pode bloquear o loop de eventos degradando mais o desempenho da aplicação como um todo.
  • Em aplicações de larga escala gerenciar é necessário que o código seja otimizado para não ter vazamento de memória.
  • Padronização de código exige um esforço maior, pois o javascript oferece muita flexibilidade.
  • Não é uma linguagem fortemente tipada aumentando as chances de erros, apesar do typescript mitigar isso.
  • Ampla gama de biblicas difícil de serem auditadas, podendo sofrer com ataques. É necessário um certo cuidado ao escolher as bibliotecas.