AMBIENTE NODEJS - A saga de descoberta do ambiente Nodejs e a criogenia do dev pagador de boletos
Tags: javascript, css, node, html
Published: 2019-08-27 02:02:19

Um pouco de mim e um pouco de história também. 
Antes de tudo, um aviso aos navegantes: esse artigo conta com uma linguagem figurada e um tanto verbosa com o objetivo de entreter e falar de um tema técnico de forma divertida, apenas leia, se você gostar desse tipo de textos.

Pega um chocolate quente ou enche a xícara de café, coloca o óculos 3d e vem comigo!
Eu sou raphael, sou programador frontend desde 2009, mas em uma reviravolta da vida, fui congelado desde 2012 em uma dimensão paralela chamada "preciso pagar os boletos". Desde então, eu, na minha criogenia, apenas ouvia pessoas balbuciarem sobre o desenvolvimento de aplicações web e perdi o 'fio da meada' de forma linda. 

Quando eu fui dormir, eu andava conectando pessoas oferecendo meus serviços de websites, fazendo páginas com joomla, cunhando HTML e CSS de próprio punho. Tinha um parceiro, da época da faculdade chamado Jhonny que desenhava telas no photoshop pra eu transformar tudo isso em códigos de tema do Joomla. Já em 2017, eu finalmente acordei. E o mundo estava diferente. Eu de barba meio branca, alguns kgs acumulados, percebi que o desenvolvimento deu nome para os papeis que eu conhecia. Por exemplo, o que eu fazia começou a ser chamado de frontend, o que os programadores ninjas faziam, desenvolvendo o coração das aplicações, começou a ser chamado de backend e ainda tem os devops, que cuidam da infraestrutura e se eu ir mais a fundo vou encontrar mais papeis .O mundo estava muito divertido =). 

Trocentas bibliotecas novas e frameworks acumulados pela internet. Cada um criando a sua própria. Aproveitando a linda infraestrutura  mantida pelos repositórios de código, os gerenciadores de pacotes. Eventos acontecendo pra falar de tecnologia, os problemas que precisam ser resolvidos e a resolução de outros. A criatividade está à solta lá fora e isso ótimo!

## O ambiente frontend

Como eu estava no gelo, só tinha ouvido histórias de como tudo aconteceu, mas fiquei sabendo que JAVASCRIPT se tornou uma linguagem super forte. Saiu um tal de ES6 em 2015 que trouxe muita novidade pra linguagem e a tornou muito mais eficiente e produtiva e essas atualizações não pararam com o ES6, é como se tivessem acordado um gigante. Já não era um mero complemento de web aplicações . Javascript deu super poderes ao frontend! Conheci também um chamado "ambiente de desenvolvimento server-side" para desenvolver em javascript, chamado Nodejs. Achei fascinante!! Javascript realmente amadureceu :'), já é adultinho! Que orgulho! Há muito mais a contar sobre esse período de criogênia, coisas que eu nem sei. Mas eis aqui o importante : NODEJS e NPM. 

## A importância do Node.js e o NPM

Essas aplicações, que agora são construídas e rodam em um servidor, usando o motor V8 de javascript ( o mesmo usado pelo chrome) , ganharam ferramentas que resolvem problemas muito importantes como por exemplo, os gerenciadores de pacote, o babel que atualiza o ambiente com as últimas versões do ecmascript(javascript). Quando você resolve montar seu ambiente pra programar seja no seu computador quanto em um servidor cloud, você ganha de brinde o NPM, que é um gerenciador de pacotes muito ousado e avançado, me lembrou as boas e velhas GEMS da época que eu usava feitiços de Ruby on rails(saudoso 2009).

Com o NPM no nodejs, eu posso por exemplo, explicar pro ambiente com um arquivo JSON ( não é o json do cinema, nada de apps assassinos por aqui.), que nada mais é que uma lista de configurações ou uma receita de feitiço pro 'bruxo' saber o que fazer com seu projeto. Por exemplo. Meu projeto precisa de React. A pessoa que for usar, não vai precisar ir atrás da versão do React que eu usei no meu projeto, ou a versão do Bootstrap, porque o arquivo Json vai dizer pro meu ambiente Node o que fazer. Resumindo: Você escreve os feitiços, fala dos ingredientes, o NPM, o fiel ajudante do Node, vai baixar tudo pra você, deixando o pacote da sua aplicação mais limpo e leve. Economizando megabytes pelo 
mundo, diminuindo o tráfego na rede . O meio ambiente agradece =)

## Controle de versões

Vivemos na era do GIT. O git se tornou extremamente necessário e super usado para armazenar, versionar e servir código open source. 

Comunidades inteiras são formadas no git hub, git lab, gist, etc. Você vai precisar bastante dele =), comece a usar hoje, mesmo que seja pra versionar textos. 

## Task Runners

Antes de ir pro gelo, lembro que existia uma preocupação muito grande com performance, pois a internet ainda não era rápida pra todo mundo e no mundo encantando do brasil, isso era um fato. Então existiam algumas técnicas que você mandava seus arquivos pra um serviço e ele diminuía o tamanho dos seus arquivos, minificava CSS e Javascript. Otimizava as imagens. Mas isso em um grande projeto acaba se gastando muito tempo fazendo isso manualmente e repetitivamente. Ai é que entra hoje em dia os automatizadores de tarefas. O gulp por exemplo, pode ser usado pra isso. Você vai descrever onde estão os arquivos e tudo o que você quer que seja minificado, otimizado e até transpilado e ele vai fazer tudo magicamente. Te devolvendo tudo processado em poucos minutos ou segundos.


Minha dica jovem padawan. Aprenda sobre O ambiente Node. Não precisa entender tudo o que acontece nele, mas aprenda a montar seu próprio ambiente em casa, no trabalho. Mesmo que você não for trabalhar diretamente com o ambiente backend, vai te dar uma ideia melhor do que acontece por trás de um ambiente profissional e se você passou por algo como eu, a criogenia pode ser contornada. Ha muito pra aprender, mas há muito que ficou pra trás também ;) bons estudos.



---

Para poupar mais linhas e lhe indicar algum caminho, sigam essas listas, que algumas das mais completas que eu conheço, escrito pela poderosíssima Carol Soares composto de indicação de canais para estudar desenvolvimento web por vídeos no youtube:

[https://github.com/carolcodes/videos-pt.br-tecnologia]

e mais esse aqui especificamente para frontend: 

[https://github.com/carolcodes/front-end-do-zero]

É isso gente. Agradeço a leitura. Dê feedback, esse é meu primeiro artigo, é imenso prazer contribuir com essa comunidade e logo terão mais ;)