3

Dia 5 – Explorando além do JS, mas dentro do JS: conheça o NODE.JS

#Informática Básica #JavaScript #Node.js
Vagner Bellacosa
Vagner Bellacosa

Dia 5 – Explorando além do JS, mas dentro do JS: conheça o NODE.JS



Dia 5 - Escreva sobre alguma particularidade nova da sua linguagem favorita que você aprendeu hoje


Bem-vindo a minha participação do Desafio 21 dias 21 artigos da DIO, hoje vamos dar um mergulho por trás do espelho, vendo os bastidores da linguagem, através de um aplicativo revolucionário que revolucionou o uso de programas JavaScript.


Estou falando do Node.JS uma ferramenta que permite executar programas JS sem a necessidade de arquivo HTML e uso de navegador, que facilita em muito a vida do programador, nos parágrafos a seguir iremos fazer um pequeno tour. Conhecendo comentando e bisbilhotando esse aplicativo.


Introdução


O Javascript surgiu em 1995 sendo largamente utilizado para dar vida a páginas Web, permitindo num primeiro momento animar páginas estáticas, posteriormente reformulado e turbinado passou a ter uma função mais profissional e passou a ser utilizado para validar dados e criar programas mais sofisticados e cheios de especificidades para atender o mundo empresarial.


Mas antes disso o JS precisou passar por uma reengenharia, para unificar os diversos dialetos que eram incompatíveis entre si e fortemente dependentes de navegadores, o que tornava instável e pouco respeitável pelos desenvolvedores profissionais. Solucionado pela criação do padrão ECMA.


O ECMA Internacional a cada release libera mais funcionalidades que fornece mais poder ao JavaScript e com mais poder, mais responsabilidade. O que dificulta os testes e com isso dificulta os debugs e desanimando os programadores. Mas em meio as trevas surgiu uma luz no fim do túnel, estamos em 27 de Maio de 2009.


Node.JS


Em 2009 surgia a melhor ferramenta para trabalhar no ambiente JavaScript tanto em cliente-side como server-side, num mar onde tantos naufragaram o Node.JS segue firme e forte, salvando a pátria de muitos devs em momentos bem tenebrosos. Um dos mais velozes em processos de IO e economia de memoria RAM.


Mas afinal o que é o Node.Js?


É uma aplicação single-threaded que na pratica funciona como multi-threaded, mas Vagner, não estou entendendo nada. Pense que nossos equipamentos por mais poderosos que sejam, são limitados e em algum momento, de preferência bem longe, os recursos se esgotaram gerando um gargalho que em determinadas situações congelam o computador.


Ou seja, cada solicitação de CPU demandada por um programa, em linhas gerais chama-se Threaded e processos multi-threaded lançam inúmeras chamadas. O nosso pequeno, mas poderoso Node lança apenas uma, porém em seu algoritmo coloca cada chamada em loop e neste pulo do gato simula múltiplas chamadas. Não bloqueantes e que possibilitam melhor desempenho e velocidade.


Legal, mas onde entre o Node.js?


Caro neófito neste longo texto, estou situando o Node, pense nele como um envelope, onde alocamos nosso código Java-Script e enganamos o sistema operacional, informando que estamos passando um programa real.


Nisso a CPU faz aquilo que é esperado, processa, processa e gera resultados em linha de comando. Voilá podemos testar, executar, aprimorar, simular e trabalhar, sem uso de navegadores web, servidores e outras parafernálias que dificultam testes e debugs.


Então Node.JS é uma caixa preta?


Sim e ao mesmo tempo não, ele é um programa código aberto desenvolvido em C++, multiplataforma, open-source e mantido pelas maiores empresas do mundo, inclusive utiliza o motor V8 da Google. Suas bibliotecas contem milhares de códigos prontos e a cada dia cresce mais.


Existem inúmeras frameworks que possibilitam a criação de mocks e protótipos rapidamente, reutilizando alguma das suas bibliotecas. Uma das mais conhecidas e a Express.Js


A Uber utilizou o Node.Js para resolver um bug que descabelou muitos analistas, isso graças a possibilidade de iterações mais rápidas e resolução de problemas on the fly. Imagine-se criando soluções próprias e inovadoras, gerando deploys rapidamente. Mãos a obra?


Essa biblioteca gigantesca é gerenciada pelo NPM Node Package Manager que organiza e gerencia um dos maiores repositórios de softwares do mundo.


Uso frequente


Falei de testes e debugs, mas não é só isso, o Node é muito poderoso, sendo o motor por trás de inúmeros chats, trabalha em base de dados NoSQL, usa e abusa do JSON e não para por ai, a cada dia está sendo requisitado em aplicativos poderosos em nuvem pelos maiores players do mercado.


Para instala-lo pode usar o Chocolatey e baixar automaticamente seus pacotes e não pensar mais no assunto, ou se quiser a moda antiga ir no site https://nodejs.org/ e baixar o instalador.


cinst nodejs
# ou para a instalação completa com npm
cinst nodejs.install


Conclusão


Um mamão com açúcar para testar os desafios de código da DIO, testar funções e executar seus micros serviços. Espero ter ajudado neste pequeno overview, feito um apanhado geral e auxiliado a despertar a curiosidade dos parças por esta fabulosa ferramenta.


Vale a pena perder um tempinho explorando o site oficial, lendo artigos técnicos, colhendo exemplos na Web e pesquisando muito, googlei a vontade.


Qualquer dúvida chama aqui ou no discord. Se gostou do artigo e quer conhecer mais tenho diversos publicados na DIO e caso queira entrar num projeto pratico, entre em contato e participe do meu projeto de Ranqueamento na DIO. Juntos somos mais fortes.


Até o próximo artigo.


Visitem-me no GitHub: https://github.com/VagnerBellacosa


Conheça meus bootcamps: https://github.com/VagnerBellacosa/DIO_Bootcamps



 https://www.linkedin.com/in/vagnerbellacosa/


 https://github.com/VagnerBellacosa/


Pode me dar uma ajudinha no YouTube?


 https://www.youtube.com/user/vagnerbellacosa


#Desafio21DiasNaDIO #Javascript #Node.js

2
39

Comentários (2)

0
Vagner Bellacosa

Vagner Bellacosa

13/07/2021 16:39

Obrigado amigo Leandro, valeu pela força #tmj

1
Leandro Carvalho

Leandro Carvalho

02/07/2021 12:13

Parabéns pelo Artigo, sua explicação sobre NodeJs foi espetacular.

Analista Programador dinossauro IBM Mainframe

Brasil