Você está na página 1de 43

Back-end Frameworks

Prof. Victor Sotero

Aula 01 – Procotolo HTTP, Nodejs e Empress.Js


Titulação
• Graduação: -Análise e Desenvolvimento de
Sistemas
• Especializações: -Segurança da Informação
-Big Data e Data Science
-Administração de Banco de
Dados
-IoT e Inteligência Artificial

Prof. Victor Sotero


Experiência Profissional em Docência
• ETE Timbaúba: professor do curso técnico de Desenvolvimento de Sistemas
(de 2011 até 2017)
• ETE Goiana: professor do curso técnico de Redes de Computadores (de 2011
até 2016)
• ETE Goiana: coordenador do curso técnico de Redes de Computadores ( de
2016 até o presente)
• CENTEG: professor de Robótica ( de 2018 até 2021)
• Faculdade de Ciências de Goiana - FCG: professor do curso superior em
Gestão da TI (de 2017 até o presente)
• Faculdade de Ciências de Timbaúba - FACET: professor e coordenador do
Curso Superior em Gestão da TI (de 2017 até o presente)

Prof. Victor Sotero


Mercado de Trabalho - TI

Pandemia Home Office

Anywhere Office

Prof. Victor Sotero


10 Profissões em Alta no Brasil
1. Recrutador(a) especializado(a) em tecnologia
2. Engenheiro (a) de confiabilidade de sites
3. Engenheiro (a) de Dados
4. Especialista em cibersegurança
5. Representante de desenvolvimento de negócios
6. Gestor (a) de tráfego
7. Engenheiro (a) de machine learning
8. Pesquisador (a) em experiência do usuários (UX)
9. Cientista de dados
10. Analista de desenvolvimento de sistemas
https://www.seudinheiro.com/2022/empresas/profissoes-em-alta-em-2022-salarios-linkedin-tecnologia-lils/

Prof. Victor Sotero


O que vamos estudar na disciplina?
• Javascript básico/Node.js;
• Python básico;
• Frameworks back-end;
• Django
• Express
• Padrão MVC – Model-View-Control;
• Deploy de Aplicações.
Prof. Victor Sotero
Você sabe o que é a internet?
Internet - Conceito
• Conjunto de redes de computadores espalhadas por todo o
planeta;

• Permite a troca de dados e mensagens utilizando um


protocolo em comum;

• Esse protocolo compartilhado pela internet é capaz de unir


vários usuários particulares.

Prof. Victor Sotero


Origem da Internet
• Surgiu na Guerra Fria;

• Os americanos criaram uma forma de compartilhamento de


informações que facilitassem as estratégias de guerra;

• Após isso veio o surgimento do primeiro protótipo da internet, a


Arpanet;

• No ano de 1969 sua finalidade foi interligar a Universidade da


Califórnia ao Instituto de Pesquisa de Stanford. Obs.: primeiro e-
mail enviado.

Prof. Victor Sotero


Origem da Internet
• Na década de 90 o britanico Tim Berners-Lee desenvolveu o
navegador (Browser) e a WWW (World Wide Web) - Rede
Mundial de Computadores;

• A partir daí surgiram outros navegadores (Internet Explorer,


Netscape, Mozilla Firefox, Google Chrome, Opera) e
consequentemente o número de usuários aumentou.

Prof. Victor Sotero


Navegar
Navegação
• Navegar na internet é o ato de passar pela web, movendo-se
de um site para outro através dos links;

• É como andar na rua, os números das casas são organizados


para facilitar a localização;

• Cada página na web tem o seu endereço;

Prof. Victor Sotero


A evolução da WEB - Linha do tempo

• Link massa

Prof. Victor Sotero


Como a Web
funciona?

https://developer.mozilla.org/
Funcionamento da web
• Os dispositivos enviam requisições através de seus
navegadores diretamente para os servidores web;

• Esses servidores enviam respostas correspondentes a cada


requisição;

• Tanto requisição quanto a resposta compartilham


subdocumentos que podem ser imagens, vídeos, textos, etc.

Prof. Victor Sotero


Funcionamento da web
• Um exemplo prático:

• Quando acessamos uma página qualquer (um E-commerce


por exemplo), digitamos seu endereço no navegador, após
isso o computador entende que se trata de uma requisição
que utiliza o protocolo HTTP que envia uma solicitação GET
para o servidor.

Prof. Victor Sotero


Funcionamento da web
• Ao chegar no servidor, ele retorna a página solicitada.

• Essas mensagens de envio e de retorno usam o protocolo


TCP/IP para reduzir o tamanho dos pacotes.

• Cada interação entre o cliente (navegador) e o servidor web,


gera uma mensagem HTTP.

Prof. Victor Sotero


Informações sobre o HTTP
• A mensagem HTTP deve possuir as seguintes informações:
1. Versão específica do HTTP
2. URL – recurso solicitado na web
3. Método – ação que a requisição espera receber do servidor
4. Cabeçalho da requisição – dados sobre o tipo do navegador,
quais informações estão sendo solicitadas e cookies
5. Corpo – informações opcionais (geralmente disponibilizadas
através de formulários e campos).

Prof. Victor Sotero


Respostas HTTP
• Em respostas as requisições, os servidores web retornam
mensagens de status. Os principais códigos são:
• 200 – ok
• 300 – movido permanentemente
• 401 – não autorizado
• 403 - proibido
• 404 – não encontrado
• 500 – erro interno do servidor

Prof. Victor Sotero


Métodos HTTP
• Como é que o servidor web sabe qual operador estamos
solicitando ao acessar um site específico?

• São os métodos HTTP que deixam isso definido;

• Esses métodos servem para criar, ler, atualizar ou deletar


informações atreladas a url especificada.

Prof. Victor Sotero


Métodos HTTP

Método Descrição
GET Utilizado para ler dados. Faz a leitura e retorna para o usuário
POST Utilizado para adicionar novos itens a URL solicitada. Exemplo: quando
enviamos dados para o servidor.
PUT Utilizado para realizar modificações nos dados solicitados ao servidor.
DELETE Utilizado para excluir dados do local de destino solicitados pelo
usuário .

Prof. Victor Sotero


Você sabe o que é um
framework?
Conceito - Framework
• Conjunto de bibliotecas que contém funcionalidades que
permitem a criação de aplicações para fornecer as mais
diversas soluções;

• Permite reutilização de código;

• É formado por classes pertencentes a uma linguagem de


programação e que fornecem recursos prontos.

Prof. Victor Sotero


Node.js
• O Node.js não é um framework (só pra deixar claro);

• Ele é um ambiente de execução de código Javascript do lado


do servidor – historicamente essa linguagem foi criada para
ser embutida no html (front-end);

• Através do Node.js é possível tornar o Javascript uma


linguagem dinâmica (antes de formatar o conteúdo para o
usuário);

Prof. Victor Sotero


Node.JS

• Possui arquitetura orientada a eventos – realiza operações


I/O assíncronas;

• O padrão orientado a eventos permite uma otimização em


relação a vazão das requisições web – request e response

Prof. Victor Sotero


Como o Node.Js foi concebido?
• Ryan Dahl, criador do Node, diz que sua inspiração veio ao
observar a barra de progresso de upload no Flickr.
• Ele havia entendido que o navegador precisava ficar
“perguntando” várias vezes ao servidor web, quanto estava
faltando para o arquivo ser transmitido – desperdício de
tempo e de recursos.
• Ele também observou a dificuldade que o Apache tinha de
lidar com conexões concorrentes.

Prof. Victor Sotero


Composição do Node.js
• Utiliza o motor Javascript V8 da
Google;
• Possui um evento loop e uma API
de I/O de baixo nível (libuv);
• Sua execução é single-thread,
diferente de outras linguagens
como PHP e Java. Isso permite
que o uso de memória e CPU seja
menor; https://www.opus-software.com.br/

Prof. Victor Sotero


Composição do Node.js
• Possui um gerenciador de pacotes NPM via comand line – isso
facilita o compartilhamento de códigos e bibliotecas Node.js;

• Gerenciador de versões - node NVM;

• Utilitário repl;

• O Node.js não é um ambiente visual ou possui ferramenta


integrada de ambiente.

Prof. Victor Sotero


Características do Node.js
• Tecnologia assíncrona que trabalha em apenas uma thread
de execução – por ser assíncrona, não bloqueia o processo
do mesmo;

• Em resumo: quando chega uma requisição (acessar o banco


de dados, por exemplo) a máquina virtual Javascript verifica
o que tem de ser feito e delega a atividade. Após isso ela
volta a atender novas requisições de forma paralela.

Prof. Victor Sotero


Empresas que usam o Node.js

• Twitter
• Spotify
• eBay
• Reddit
• LinkedIn

Prof. Victor Sotero


Node.Js não é uma linguagem de programação
• Embora utilize o Javascript, o Node.js não é considerado
uma linguagem de programação;

• O Node também não é um framework (está mais para


plataforma de aplicação como Nginx);

• A máquina virtual V8 é a mesma que a Google utiliza no


Chrome para executar Javascript.

Prof. Victor Sotero


Potencial do
Node.Js
Configurando o Ambiente
• O download pode ser feito gratuitamente através do link
https://nodejs.org
• No link aparecerá duas opções de download (escolha a opção estável
LTS);

• A instalação não requer nenhuma força jedi(next-next-finish);

• Para verificar se a instalação aconteceu de forma correta, abra o cmd e


digite node –v ou node --version

Prof. Victor Sotero


Testando o Node.js
• Crie uma pasta em qualquer diretório e dentro dela crie um
arquivo chamado teste.js .
• Insira nesse arquivo o trecho de código:
console.log(“Olá, estou testando essa parada!”)
• Salve o arquivo, abra o cmd e acesse o diretório onde o
arquivo foi criado. Após isso digite o comando node teste.js.
• Obs.: caso seu SO tenha variável de ambiente não é preciso
acessar o diretório pelo cmd.

Prof. Victor Sotero


O que é NPM?
• Ecossistema de pacotes do Node.js;
• Código aberto;
• Comunidade gigantesca;
• Você pode pesquisar no site da NPM o pacote que precisa e
instalar utilizando um comando simples;
• É possível gerenciar as versões dos pacotes assim como criar
scripts para automatizar serviços (de atualização por
exemplo).

Prof. Victor Sotero


Instalação de pacotes NPM via CLI
• Ao instalar o Node.js, o NPM também será instalado de
forma automática;

• Sintaxe do comando: npm install <pacote-nome> ;

• É possível instalar vários pacotes ao mesmo tempo: npm


install <pacote-1> <pacote-2> <pacote-3> .

Prof. Victor Sotero


Package.json
• O arquivo package.json funciona como manifesto do projeto.
Nesse caso, ele contém um repositório das configurações das
ferramentas utilizadas no projeto;

• Em resumo, quando executamos o npm e instalamos algum


módulo, automaticamente o package.json recebe
informações sobre as versões e nomes dos pacotes
instalados.

Prof. Victor Sotero


Prof. Victor Sotero
Express.js
• Para que uma aplicação web seja dinâmica, ela necessita de
um servidor para responder as solicitações dos clientes. Ex.:
apache e Nginx;

• O Express auxilia na criação de servidores web utilizando o


Node;

• Fornece diversos recursos robustos para aplicativos web e


mobile;

Prof. Victor Sotero


Express.js
• Foi criado por TJ Holowaychuk e atualmente pertence a IBM
(sobre os cuidados da fundação Node.js);

• Foi construído através do motor V8 da Google (Chrome);

• Ele é considerado o framework mais utilizado da atualidade;

• Ajuda na criação de servidores web(tenho dito :D) e na criação de


rotas (veremos na prática).

Prof. Victor Sotero


Importando o Express.js
• Uma vez possuindo o NPM instalado é preciso importar o
módulo que contém o Express para o nosso projeto.

• Rode o seguinte comando com privilégio de adm no terminal:


• npm install express-generator

• O express-generator permite a criação de uma estrutura básica


para um projeto Express.

Prof. Victor Sotero


• Fim

Prof. Victor Sotero

Você também pode gostar