15-11-2022
Node.JS: o potencial da plataforma que fez JavaScript crescer
por Diogo Salaberri, Technical Project Manager @ Xpand IT
Para vos ajudar e explicar o que é Node.JS, há que vos dar um um pouco de contexto. Temos de falar primeiro sobre JavaScript! A famosa linguagem de programação foi criada por Brendan Eich no final do ano de 1995.
No entanto, o JavaScript que conhecemos hoje já é diferente porque antes estava num campo ainda novo, que era a Web, onde já existiam linguagens como PHP e Java (JSF – JavaServer Faces). JavaScript desenvolveu-se bastante até os dias de hoje, mas sempre foi uma opção Client Side pois, como sabemos, funciona nos navegadores porque cada cliente tem os seus motores para isso.
O mundo do desenvolvimento Web é normalmente dividido (mas não em todos os casos) em Backend e Frontend, devido à arquitetura Cliente-Servidor e o JavaScript. No caso de JavaScript, que já tinha o seu espaço para trabalhar Frontend, tendo um limite muito claro à sua frente: o Backend. E é aqui que entra o nosso tema central, o Node.JS.
O que é Node.JS?
Segundo o próprio site da plataforma, o Node.JS “é um ambiente de execução JavaScript multiplataforma de código aberto”. O Node.JS não foi a primeira tentativa de levar o JavaScript para fora dos navegadores. Surgiram várias opções, mas esbarraram em performance, usabilidade, etc., acabando por dar errado. O que dá notoriedade ao Node.JS é que ele foi bem-sucedido, abrindo um novo mundo para onde o JavaScript pôde crescer.
O ambiente funciona sobre a implementação do motor JavaScript V8, criado pelo Google e presente nos navegadores Chrome e Chromium, e isso explica como foi possível ter as linguagens interpretadas fora dos navegadores. Afinal, se eu precisar de um motor JavaScript e não estou mais a rodá-lo (sendo interpretado) no navegador, cria-se um ambiente que tem o seu próprio motor – e esse é o Node.JS.
Node.JS – Aprofundando os conceitos…
Agora que percebemos como o ambiente Node.JS foi capaz de interpretar JavaScript fora dos navegadores, precisamos de ter atenção a alguns conceitos que ajudaram a plataforma a consolidar-se como uma escolha viável no desenvolvimento Server-Side.
Ao contrário das linguagens concorrentes, Node.JS é single-thread, o que significa que existe apenas uma thread para tratar das requisições. Essa única thread chama-se Event Loop e é muito importante também dizer que ela é não-bloqueante – conceito chave para que isto funcione. Ser uma thread não-bloqueante significa que o Event Loop não fica bloqueado e a aguardar que as requisições sejam resolvidas. O Event Loop recebe as requisições, repassa o trabalho e espera a próxima requisição, tratando-as como assíncronas.
Node.JS é multi-plataforma, ou seja, as suas aplicações escritas em JavaScript, podem operar em diferentes plataformas como Windows, macOS e Linux. Basta teres o Node.JS instalado para interpretares o teu código, independentemente de onde estiver a funcionar.
Node.JS vem com um extra…
Quando o Node.JS é instalado no ambiente de desenvolvimento, vem também com o NPM que, por ser importante, também merece ser mencionado. Trata-se do Node Package Manager: um gestor de pacotes JavaScript para Node.JS. Isto torna a plataforma ainda mais atrativa à comunidade porque traz vários pacotes de terceiros para acrescentar à sua aplicação. Em termos práticos, não precisas de fazer tudo sozinho, se alguém na comunidade já solucionou o problema, provavelmente publicou a solução no NPM e basta adicioná-la à sua aplicação.
As aplicações mais comuns de Node.JS
- REST API: o Node.JS brilha quando usado para desenvolver REST APIs. Juntando poucas bibliotecas podemos, rapidamente, ter uma REST API servindo ou integrando aplicações. Quando falamos de REST APIs com Node.JS, lembramo-nos logo do Express.JS, que é uma framework Web, flexível e minimalista. Tal framework pode, facilmente, ser adicionada ao teu projeto através do NPM
- Tempo real: aplicações em tempo real, como chats, obrigam a um alto tráfego de informação, muitas vezes para diversos dispositivos. Nesta aplicabilidade, temos o uso dos conceitos de multiplataforma, requisições assíncronas e não-bloqueantes
- Proxy API: uma outra forma muito comum de utilização do Node.JS é a criação de Proxy APIs, que é uma camada que está normalmente acima de outras APIs, orquestrando chamadas, dados ou até mesmo a funcionar como um Load Balancer.
Conclusão
O Node.JS pode já não ser uma novidade para os developers de JavaScript, mas ainda é de grande importância na comunidade, não só pelo que fez no passado, mas pelo que faz para as frameworks JavaScript através do NPM.
Para finalizar, e ao escrever este texto em 2022, o Node.JS já é plenamente aceite e consolidado como um ambiente de desenvolvimento JavaScript e sempre será lembrado como uma plataforma que rompeu as fronteiras das soluções Server-Side. Para além disso, já existem soluções escritas em cima de Node.JS, como o Nest.JS, que traz consigo o TypeScript, assim como diversas abstrações.
Leave a comment
Comments are closed.