Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[Unifenas JOIN 2021] Introdução ao Node - Prime...

[Unifenas JOIN 2021] Introdução ao Node - Primeiros passos

Talysson de Oliveira Cassiano

September 13, 2021
Tweet

More Decks by Talysson de Oliveira Cassiano

Other Decks in Programming

Transcript

  1. O que é o Node? ⬢ Uma plataforma para executar

    JavaScript fora do browser ⬢ I/O (entrada e saída) assíncrona e não bloqueante ⬢ Concorrência baseada em eventos ⬢ Consiste em 3 componentes principais: V8 Engine Libuv Standard lib
  2. Quais as vantagens? ⬢ Executa em um único processo ⬢

    Baixo consumo de memória ⬢ Alta performance ⬢ Modelo de concorrência baseado em eventos permite receber várias requisições sem grande impacto no servidor ⬢ Utilização da mesma linguagem no backend (servidor) e no frontend (browser) da aplicação
  3. > node > 1 + 2 3 > const event

    = { name: 'JOIN', year: 2021 } undefined > event.name 'JOIN' > event.year 2021 > .exit Conhecendo a linha de comando
  4. JavaScript - a linguagem ⬢ Multi-paradigma ⬢ Utiliza variáveis primitivas

    e objetos ⬢ Dinamicamente tipada ⬢ Modelo de concorrência não bloqueante utilizando callbacks ⬢ Funções são first-class, ou seja, tratadas como qualquer outra variável, e não algo especial
  5. Importando arquivos ⬢ Cada arquivo é chamado de módulo ⬢

    O Node suporta dois sistema de módulos: CommonJS e ESM (EcmaScript Modules) ⬢ Nos exemplos usaremos CommonJS ⬢ Duas variáveis principais: require e module.exports ⬢ Módulos podem exportar múltiplas variáveis que podem ser importados por outros módulos
  6. Bibliotecas ou pacotes ⬢ Módulos externos à aplicação ⬢ A

    standard lib do Node já possui várias ⬢ Pacotes são distribuídos através do npm ⬢ Há aproximadamente 1.3 milhão de pacotes disponíveis no npm ⬢ O programa para interagir com o npm é instalado automaticamente quando se instala o Node ⬢ Pacotes instalados são listados no package.json e salvos em node_modules
  7. Uma aplicação de exemplo ⬢ Uma única URL que conta

    quantas vezes ela mesma foi acessada ⬢ Sempre que acessarmos, incrementamos o valor
  8. Quais os próximos passos? ⬢ Se aprofundar mais em JavaScript

    (https://eloquentjavascript.net/) ⬢ Estudar o modelo de assincronia (https://github.com/getify/You-Dont-Kno w-JS/blob/1st-ed/async%20&%20perform ance/README.md) ⬢ Estudar como funcionam servidores web e verbos HTTP ⬢ Aprender a interagir com um banco de dados real a partir de uma aplicação Node
  9. Derrubando mitos ⬢ JavaScript é uma linguagem inferior? ⬢ JavaScript

    não é uma linguagem amigável para quem vem de outras linguagens? ⬢ Node ainda não está preparado para uso em produção? ⬢ O único banco de dados compatível com Node é MongoDB? ⬢ Não existe padronização para projetos Node? ⬢ Tudo muda o tempo todo, tornando impossível de se acompanhar?
  10. Links ⬢ Guia JavaScript: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Guide ⬢ Conteúdos para estudar JavaScript:

    https://github.com/javascript-society/javascript-path ⬢ Node Guides: https://nodejs.org/en/docs/guides ⬢ Node standard lib: https://nodejs.org/api ⬢ CommonJS Modules: https://nodejs.org/api/modules.html ⬢ npm: https://npmjs.com ⬢ Boas práticas com Node: https://blog.codeminer42.com/nodejs-and-good-practices-354e 7d763626