Desenvolvimento Web para iniciantes
Nesta série de artigos vou ensinar como desenvolver um Back-end completo utilizando tecnologias como Node.js, express, mongoDB, mongoose, entre outras. Antes de iniciar este "curso" sobre Back-end, vamos rever algumas noções sobre Desenvolvimento Web, o que acha? Vamos começar!
O que é desenvolvimento web?
O desenvolvimento de páginas web, como o próprio nome diz, consiste na criação de sites para a Internet e, atualmente, é uma das disciplinas mais bem pagas do mundo. Este ramo da programação vai desde a criação de simples páginas estáticas que contêm apenas texto até aplicações web complexas como e-commerce, redes sociais, etc.
Como funciona uma página web?
As páginas da Web são geralmente separadas em 2 tópicos principais. Por um lado encontramos o Front-end, que é responsável por mostrar um produto ao cliente, e por outro lado o Back-end, que cumpre a função de fornecer informação ao Front-end através da comunicação com uma base de dados.
A título de explicação, vou dar um exemplo de restaurante para explicar de forma muito simples e resumida estes 2 novos conceitos que acabo de introduzir. Nesse caso, o restaurante seria a página da web, enquanto a lanchonete seria o usuário que a acessasse.
1. O cliente (usuário) entra no restaurante. Assim que você se sentar na mesa designada, um garçom (Front-end) mostrará o menu (conteúdo da página web) para que o cliente possa fazer seu pedido.
2. Assim que o garçom receber o pedido (*pedido) que o usuário fez, ele comunicará ao cozinheiro (Back-end) o que o cliente deseja.
3. Feita a solicitação, o cozinheiro irá prepará-la com os ingredientes necessários (*Banco de Dados), de forma a atender o que o cliente deseja.
4. Quando o pedido fica pronto, o cozinheiro o entrega ao garçom (*resposta) e o garçom se encarrega de levá-lo ao cliente e assim satisfazer o que ele deseja.
Todo esse processo de pedir, preparar e entregar em um restaurante levaria muito tempo, mas em um site levaria apenas alguns segundos. Obviamente, esse tempo pode depender de quão bem a página é feita, da conexão do cliente e da qualidade do seu dispositivo.
Após esta explicação um tanto ilustrativa de como funciona uma página web, gostaria de explicar acima os conceitos de Front-end e Back-end, apresentados no exemplo anterior.
O que é Front-end e Back-end?
Para entender o que são Front-end e Back-end, devemos primeiro nos familiarizar com a arquitetura cliente/servidor, a mesma na qual a web se baseia. Consiste no cliente e no servidor sendo dois “computadores”, o cliente é quem solicita as informações e o servidor se encarrega de entregar essas informações solicitadas, desde que o cliente tenha as permissões necessárias.
Isso significa que, quando o cliente faz uma solicitação, o servidor deve validar se o cliente atende aos requisitos para concluir a solicitação. Um exemplo disso é a Netflix: o cliente deve ter uma conta paga para acessar o conteúdo da página e, caso não a tenha, o servidor negaria o acesso ao referido conteúdo.
Agora que sabemos como a web é gerenciada com essa arquitetura, espero que você tenha percebido que quando falamos de cliente, estamos falando realmente de Front-end e quando falamos de servidor, estamos falando de Back-end.
O que precisamos para conseguir uma conexão entre Front e Back é uma API, que basicamente e em poucas palavras é um conjunto de definições e protocolos usados para projetar e integrar software de aplicação. Se você não entendeu muito bem o que é uma API, não se preocupe, nos próximos artigos falaremos mais sobre isso.
Com foco no Front-end, é um estilo de programação de computadores na codificação e criação de elementos e funções de um site que o usuário verá posteriormente. Ele garante que os aspectos visuais de um site sejam funcionais. Digamos que você seja um desenvolvedor front-end. Isso significa que seu trabalho é codificar e dar vida aos elementos visuais de um site. Você estaria mais focado no que o usuário vê quando visita um site ou aplicativo e gostaria de garantir que o site seja fácil de interagir e funcione sem problemas.
E falando especificamente do Back-end, ele permite que um site seja interativo. Por exemplo, digamos que você esteja executando um site de rede social. Você precisa de um local acessível para armazenar todas as informações de seus usuários. Esse centro de armazenamento é chamado de banco de dados. Os bancos de dados são executados a partir de um servidor, que é essencialmente um computador remoto. Um desenvolvedor de back-end ajudará a gerenciar esse banco de dados, bem como o conteúdo do site armazenado nele. Isso garante que os elementos front-end do site de rede social possam continuar funcionando corretamente enquanto os usuários navegam pelo conteúdo carregado e outros perfis de usuário.
Embora os usuários não interajam diretamente com o back-end de um site, eles interagem com os elementos em que esses desenvolvedores trabalham por meio de um aplicativo front-end. O desenvolvedor back-end cuida do armazenamento e organização de dados, garantindo que o que foi feito pelo front-end funcione bem.
Este é o fim desta breve introdução ao desenvolvimento web e suas partes. Obviamente, o desenvolvimento web é muito mais amplo e, neste "curso", tentarei aprofundar e abordar questões de uma parte desta disciplina, o desenvolvimento back-end.
Glossário
- Banco de dados: Centro de armazenamento de informações.
- Petição/solicitação: Cliente solicitando recursos do servidor.
- Resposta: Resposta fornecida pelo servidor ao cliente.