☕ Um Café no Bellacosa Mainframe
Gostou do conteúdo? Ajude a manter o café quente, o COBOL compilando e o mainframe acordado. 😄
☕ Pague um café ao Bellacosa

Translate

segunda-feira, 21 de junho de 2021

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

 


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

  • #Informática Básica
  • #JavaScript
  • #Node.js

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


image


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


image


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


image


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.


image


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.


image


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


image


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?


image


É 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?


image


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?


image


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?


image


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


Uso frequente


image


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

  

Espero ter ajudado ate o próximo artigo.



https://dio.me/articles/dia-5-explorando-alem-do-js-mas-dentro-do-js-conheca-o-nodejs


image


image Mais momento jabá, os miúdos fazem a festa na apresentação de Natal do Colégio DOREMI, visite meu vídeo e veja para onde fui desta vez: https://www.youtube.com/watch?v=PeFFgSw9oic


Bom curso a todos.


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


image https://github.com/VagnerBellacosa/


Pode me dar uma ajudinha no YouTube?


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


#Desafio21DiasNaDIO #Javascript #Node.js

Dia 4 – JavaScript e laços de repetição

 


Dia 4 – JavaScript e laços de repetição

  • #Programação para Internet
  • #JavaScript
  • #Arquitetura de Sistemas

Dia 4 – JavaScript e laços de repetição


image


Dia 4 - Escreva sobre como trabalhar com laços de repetição na sua linguagem favorita


Bem-vindo amigos para mais um artigo em nosso Desafio 21 dias 21 artigos, hoje foi fazer uma pequena apresentação sobre os laços de repetição em Javascript, para ajudar iniciantes a conhecerem melhor esta fabulosa linguagem.


Muito útil para animar páginas da internet, elaborar validações em front-ends, auxiliar em rotinas de escrito, na verdade é pau para toda obra, fique conosco e veja o que podemos fazer.


image


É um novato em programação? Então vamos fazer uma pequena introdução. Antes de mais nada Loop e Repetição são sinônimos em programação.


Introdução


image


Imagine que ao iniciar a codificação o programa ira seguir uma sequência lógica de comandos, um após o outro, porém em algumas logicas acontecera que determinada combinação de comandos deverá ser repetida até obter um determinado resultado.


Para essa necessidade surgiram os laços de repetição, existem diversos tipos, cada um voltado para uma necessidade especifica.


Apresentando os laços


  •         For
  •         While
  •         Do, While
  •         Label
  •         For... in
  •         For... of


image


Cada um com uma especificidade que ajudam solucionar problemas simples e complexos, podendo ser utilizados sozinhos ou em conjunto, sendo ferramentas imprescindíveis na codificação nossa do dia a dia.


FOR


O primeiro laço a ser apresentado é o laço FOR, sendo utilizado em repetições com um limite real e conhecido. No exemplo abaixo será impresso os números de 0 até 9.


Ct_Limite = 10
 for (var i = 0; i < Ct_Limite ; i++) {
 console.log(“i: “ + i)
}


While


Este laço é mais complexo, pois existe a necessidade de um comando de saída, famoso por gerar inúmeros bugs de loop infinito. Neste exemplo imprimira de 0 até 9, sendo que a variável n será o elemento de saída quando atingir 10.


Ct_Limite = 10;
n = 0;
while (n < Ct_Limite) {
 console.log(n);  
 n++;
}


Do...While


Este comando é uma variação do While, porém apresenta uma diferença sutil. Enquanto no While puro a condição tem que ser verdadeira, para iniciar a repetição, neste caso a condição é sempre feita ao menos uma vez a depender da lógica. No exemplo sera impresso 1 e ao entrar no loop imprimira o restante até o 9.


Ct_Limite = 10;
i = 0;
do {
i += 1;
console.log(i);
} while (i < Ct_Limite);


Label


Utilizei muito em Cobol, através do perform, quando passei as linguagens senti falta desta solução, até descobrir o label, ele funciona marcando uma determinada sessão do código e permitindo sua referencia. Exemplo


markLoop:
while (theMark == true) {
 facaAlgo();
}


For... in


Funciona de maneira parecida ao For explicado anterior, com uma nuance possibilita explorar o interior de arrays e objetos exibindo ou iterando com suas propriedades. Ficou confuso ne?


Veja o exemplo, talvez fique mais claro


let arr = [3, 5, 7];
arr.foo = "hello";
for (let i in arr) {
 console.log(i); // logs "0", "1", "2", "foo"
}


For... of


Estou dando no em sua cabeça? Vai piorar... este laço For, faz uma repetição dentro do objeto, array, ou seja, trazendo seu conteúdo para uso no programa.


Como assim??? Veja o exemplo vai te ajudar.


let arr = [3, 5, 7];
for (let i of arr) {
 console.log(i); // logs "3", "5", "7"
}


Viu não era tao difícil assim...


Apresentei todos os laços de repetição ate o momento, lembre-se que a ECMA Internacional poderá criar uma nova em algum novo release.


Fugindo dos loops


image


Mas antes de terminarmos, faltou comentar sobre dois super mega poderosos comandos .


Break


Este comando encerra o loop e executa o próximo comando fora do LOOP. Ai esta ficando bem confuso este troço? Calma, vamos por partes como diria o Jack, estripador. Quando o IF for verdadeiro a repetição FOR é encerrada.


for (i = 0; i < Ct_Limite; i++) {
if (a[i] == theValue) {
  break;
}
}


Continue


O Continue é primo o break, mas seu funcionamento é inverso do Break, quando numa repetição e encontrado o Continue, o ponteiro do programa retorna para o início do loop, refazendo todos os comandos. Eita piorou? Calma tem exemplo.


i = 0;
n = 0;
while (i < 5) {
i++;
if (i == 3) {
  continue;
}
 Console.log(i); // exibe 1, 2, 4, 5
}


Conclusão


Espero ter ajudado ao parça fazendo esta breve introdução aos loops (laços de repetição), fazendo um pequeno resumo e dando exemplos práticos, caso surja alguma duvida, não se acanhe, pergunte aqui ou no discord. Lembre-se juntos somos mais fortes.


Caso interesse entre em nosso coding dojo de Javascript e faça os exercícios para aprimorar seus conhecimentos.


Lembre codificar é uma arte de raciocínio artesanal, cada programa reflete a alma do programador, apresentando soluções impares para problemas do cotidiano. Treine, brinque, experimente, descubra um mundo totalmente inusitado.


Espero ter ajudado.


Convido a conhecerem meu Github: https://github.com/VagnerBellacosa


Acompanhe meus bootcamps : https://github.com/VagnerBellacosa/DIO_Bootcamps

 

Coding Dojo

🚀 Coding Dojo

https://web.dio.me/articles/coding-dojo


Saiba como participar do Desafio 21 Dias 21 Artigos


image


🚀 Como fazer o Desafio 21 dias 21 artigos ? @Desafio21DiasNaDIO


https://web.dio.me/articles/desafio-21-dias-21-artigos-desafio21diasnadio


🚀 Vencendo o Desafio 21 dias 21 artigos.


https://web.dio.me/articles/vencendo-o-desafio-21-dias-21-artigos

Espero ter ajudado ate o próximo artigo.


image



https://dio.me/articles/dia-4-javascript-e-lacos-de-repeticao


 Referência Bibliográfica


WIKIPEDIA - A Enciclopédia Livre, faça parte, ajude actualizando ou criando verbetes http://www.wikipedia.org


Google Books um repositório com milhões de livros digitalizados https://books.google.com/


Internet Archive, tudo aquilo que um dia foi publicado veio parar aqui. https://archive.org/


Biblioteca de ícones https://www.flaticon.com/



image


image Mais momento jabá, uma jornada na marginal Pinheiros com tare caótica e muito transito, outrora foi a praia dos paulistanos, famílias fazia pic nics em suas margens, banhistas nadavam e curtiam dias de folga, mas a cidade foi crescendo, avenidas foram construídas, a poluição correu solta e destruiu toda a natureza, tornando o Rio Tiete, aquele que permitiu conquistar o Brasil a Oeste de Tordesilhas, enfeou-se, embruteceu e tornou-se na triste imagem que vemos em nossos dias, muito triste, pesaroso assim, visite meu vídeo e veja para onde fui desta vez: https://www.youtube.com/watch?v=o1cX434YwQk


Bom curso a todos.


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


image https://github.com/VagnerBellacosa/


Pode me dar uma ajudinha no YouTube?


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


 #Desafio21DiasNaDIO 

Vagner Renato Bellacosa, IBM Champion e especialista em IBM Mainframe
IBM Z17 SYSTEM ONLINE
Sobre o autor

Vagner Renato Bellacosa

IBM Champion 2026 • Especialista em IBM Mainframe

Vagner Renato Bellacosa trabalha com IBM Mainframe desde 1988 , é IBM Champion e especialista em COBOL, CICS, Db2, z/OS e IBM Z. Compartilha experiências profissionais, conhecimento técnico, história da computação e práticas do universo mainframe para aproximar novas gerações das tecnologias que sustentam empresas, bancos e governos ao redor do mundo.

IBM Champion IBM Z COBOL CICS Db2 z/OS Mainframe desde 1988
GitHub LinkedIn
Inicializando conteúdo...