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
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. | ||
| ||
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: | ||
| ||
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 |