Introdução à Backend e nodeJS
40
1

Introdução à Backend e nodeJS

O que é Backend? O que é NodeJS? O que é API ou REST API? O que é servidor? Se essas palavras estão em mandarim pra você, ou tu tá engressando na área e ainda não tem certeza do que são e só ouve falar, segue descendo que eu tento te explicar de for

Douglas Machado
6 min
40
1

     O que é Backend? O que é NodeJS? O que é API ou REST API? O que é servidor? Se essas palavras estão em mandarim pra você, ou tu tá ingressando na área e ainda não tem certeza do que são e só ouve falar, segue descendo que eu tento te explicar de forma resumida o que elas representam e o que significam.

As principais tecnologias do desenvolvimento web
As principais tecnologias do desenvolvimento web

    Antes de entrarmos em termos mais técnicos, é necessário entender brevemente como funciona o desenvolvimento WEB e quem são os seus atores.  

    Quem não entende da área de tecnologia ou está recém ingressando, acaba por definir quem trabalha com desenvolvimento apenas como Programador (assim como minha mãe) -- Está errado? Não exatamente, mas a definição não é tão simples assim, dentro desse meio temos algumas divisões e áreas específicas. As mais básicas e comuns serão definidas a seguir de forma resumida. 


Qual as divisões do desenvolvimento web?

O que é e qual a função de um Designer?

    Um designer dentro de um time de programação tem o trabalho de definir as telas para o usuário (User Interface ou UI) e a experiência do usuário (User experience ou UX), baseando-se em paradigmas e padrões de design, sempre pensando em como o sistema/site/plataforma deve seguir o fluxo e que o usuário consiga compreender o que está acontecendo, e é claro, deixando bonitinho e prazível.

O que é e qual a função de um Frontend?

    O desenvolvedor frontend é o responsável por pegar as telas desenhadas pelo designer e implementá-las por meio de linhas de código, tendo sempre em mente (como um professor me ensinou no primeiro dia de aula da faculdade) que o usuário é burro e vai se comportar de maneira inesperada, então é o papel deste profissional pensar em todos os casos possíveis (e impossíveis) e escrever um comportamento para a parte visível do sistema -- casos de uso --  evitando bugs e comportamentos inesperados.

    Ele vai utilizar de tecnologias como HTML, CSS e Javascript (provavelmente com algum framework) para executar isso e fazer requisições, tanto de inserção de dados quanto requisições de dados para o backend.

O que é e qual a função de um Backend?

    Este é o ramo que será estudado nesta série de textos e mais bem definido, este profissional é o responsável pela segurança do sistema e dos dados, modelagem e conexão com o banco de dados e com API's externas/de terceiros, falando em API... O que é isso??

    API -- Application Programming Interface -- é o core do sistema, é a parte que o usuário não enxerga e é papel do backend implementá-lo, de forma que o usuário não tenha acesso nem se comunique diretamente com os dados persistidos no banco sem passar pelas devidas validações necessárias. É aqui que o frontend bate, literalmente,  na porta pra pedir informações ou salva-las. E como ele vai fazer isso?


O que são protocolos HTTP?

    Para o desenvolvimento WEB, que é o tratado aqui, existe um conjunto de operações já definidas pelo protocolo HTTP, que pode ser definido brevemente como: Uma forma de conversa por mensagem entre duas máquina, uma cliente que está tentando acessar e outra o servidor, que possui as informações a serem acessadas. Ele possui um conjunto de informações e dados estruturados e necessários para que o navegador consiga interpretar a requisição e assim direcionar para conseguir se comunicar efetivamente com o servidor. As mais importantes são:

Exemplo de uma estrutura de uma requisição HTTP
Exemplo de uma estrutura de uma requisição HTTP

POST

Método utilizado para indicar a inserção de dados no banco do servidor, como por exemplo: Salvar os dados de um formulário de criação de usuário em um sistema.

GET

Esse método é utilizado para indicar a intenção de apenas pedir e receber informações do servidor, como por exemplo: Informações de um usuário já existente e salvo no banco de dados ou informações para carregamento de uma determinada página.

PUT

Esse método é utilizado para indicar a intenção de atualizar os dados já existentes em um banco de dados, como por exemplo: Atualizar o nome de cadastro de um usuário que já foi criado com o POST  e ao receber o resultado da requisição de GET o usuário percebeu que escreveu o nome errado.

DELETE

Acho que esse o próprio nome já diz, intenção de remover alguma informação do sistema.


O que é CRUD?

    Com a combinação desses métodos, é possível facilmente criar uma aplicaçãozinha CRUD (create, remove, update e delete) de um usuário ou qualquer exemplo simples, tipo o que eu utilizei acima, obvio que fazendo com que tua API faça as devidas operações de segurança e validação dos dados.

    Agora que tu já tá com uma idéia bastante básica de como funciona o backend, bora entrar em NODE? Calma que ainda tem mais um nomezinho tosco a ser definido.

    O que é REST API? Representation State Transfer ou Transferência Repesentacional de Estado é um estilo de arquitetura que possui um conjunto de guias ou protocolos ou até mesmo restrições (mais em RESTful) de conexões que são utilizadas para criação de WEB Services ela é basicamente uma interface que fornece dados de forma padronizado de acordo com o protocolo http.

    Agora sim!!! Vamos finalizar esse primeiro texto introdutório falando de Node (me desculpem pela enrolação).


O que é NodeJS?

    NodeJS pode ser definido como ambiente de execução Javascript server-side, primáriamente era utilizado apenas pra execução client-side onde já vinha sendo utilizado desde 1995. Mas isso quer dizer que com o Node, é possível escrever um sistema ou como já expliquei antes, uma REST API, e com grande capacidade de escalabilidade, tem uma boa flexibilidade e um baixo custo, é uma ótima opção pra implementação de Microsserviços. 

    Uma vantagem é que o Node é single-thread, mas o que isso significa? Que para cada requisição recebida é criada uma nova thread para a execução. Mas por que isso é uma vantagem? Porque por exemplo, em outras linguagens que são multi-thread, como os recursos computacionais são limitados e não é possível criar threads infinitas, elas passam a ser inseridas em uma fila de execução e assim, atrasando por terem que esperar o recurso computacional ser liberado. Essa single-thread é chamada de Event Loop e pode ser melhor visualizada na imagem de exemplo abaixo:

   
   

    Então, pra um primeiro contato acho que já está bom né? Fica o conselho para buscarem mais a fundo sobre protocolos de internet e coisas do tipo, nos próximos textos vamos pra uma parte mais prática e tudo mais. Qualquer dúvida ou comentário entrem em contato comigo aqui mesmo. Abraços