Olá, estudante! Pronto(a) para entender o que é esse mundo chamado back-end? Nessa disciplina, assim como foi feito na disciplina de front-end, irei lhe mostrar todo o ambiente e processos que são realizados nessa área de desenvolvimento de sistema.
Falando especificamente desta primeira lição, abordarei com você a diferença entre back-end e front-end para lhe mostrar em quais ambientes um(a) técnico(a) em desenvolvimento de sistemas focado em back-end atua e quais processos são necessários para que essa parte do software seja desenvolvida.
Quando se fala em ambientes da parte de back-end de um software, você pode pensar em dois caminhos: o primeiro diz respeito ao ambiente de sua máquina, ou seja, o que você precisa ter instalado para trabalhar com o back-end propriamente dito, pois sempre teremos um conjunto de ferramentas básicas, independentemente da linguagem de programação que você deve ter para exercer tais tarefas. O outro caminho seria com relação ao tipo de ambiente em que você pode diferenciar o ambiente de desenvolvimento (sua máquina), o ambiente de homologação (ambiente disponibilizado para o cliente e o resto da equipe para validar o que foi feito) e o ambiente de produção (que é realmente onde o back-end será considerado pronto e entregue para seu cliente).
Com relação aos processos, você irá estruturar questões que envolvem a arquitetura do software, gerenciamento de banco de dados, implementação da lógica de negócio, desenvolvimento de APIs, testes automatizados, segurança e autenticação de seu software. É muita coisa interessante! Vamos então conhecer o BACK-END!
A programação back-end desempenha um papel fundamental na resolução de um problema comum enfrentado por muitas empresas: a necessidade de processar e armazenar grandes volumes de dados de forma eficiente e segura. À medida que as empresas crescem e lidam com um aumento significativo no número de usuários, transações e interações, surge a necessidade de uma infraestrutura robusta para gerenciar essas operações complexas.
Através do desenvolvimento back-end, ou programação back-end, se assim preferir chamar, é possível criar sistemas que lidam com o processamento, armazenamento e recuperação de dados de forma otimizada. Esses sistemas permitem que as empresas coletem, organizem e analisem informações essenciais para tomar decisões estratégicas e operacionais.
Ao utilizar linguagens de programação adequadas, como Python, Ruby, Java ou PHP, juntamente a frameworks e bibliotecas especializadas, os desenvolvedores back-end podem construir aplicativos e sistemas que interagem diretamente com banco de dados, permitindo consultas complexas, filtragem de dados e análises avançadas.
Além disso, a programação back-end possibilita a implementação de medidas de segurança para proteger dados sensíveis das empresas e dos usuários. Com a escalabilidade e a eficiência dos sistemas back-end, é possível lidar com altos volumes de tráfego e transações, garantindo um desempenho consistente e uma experiência positiva para os usuários. Os desenvolvedores back-end têm a responsabilidade de otimizar a velocidade de resposta dos aplicativos, implementando estratégias como o cachê de dados e a distribuição de carga entre servidores.
Venha comigo aprender esses conceitos e técnicas para ser um(a) ótimo(a) profissional em desenvolvimento de sistemas atuando em back-end!
Na lição de hoje irei lhe apresentar como a programação back-end faz a diferença nas grandes empresas e na utilização de sistemas através de um case fictício. Há alguns anos, uma startup chamada Tech Solutions enfrentou um desafio com relação à escalabilidade e desempenho de seu aplicativo. Eles desenvolveram uma plataforma de e-commerce inovadora, mas com o aumento exponencial de usuários e transações, o sistema back-end começou a apresentar problemas de velocidade e estabilidade.
Para solucionar esse problema, a equipe de desenvolvimento da Tech Solutions decidiu investir em melhorias significativas no lado back-end do aplicativo. Eles reavaliaram toda a arquitetura e optaram por migrar para uma estrutura mais escalável e eficiente.
Utilizando tecnologias como Node.js e MongoDB, os desenvolvedores back-end criaram uma infraestrutura robusta capaz de lidar com grandes volumes de dados e consultas complexas de forma rápida e precisa. Além disso, eles implementaram o conceito de balanceamento de carga para distribuir o tráfego de forma equilibrada entre os servidores, garantindo um desempenho consistente mesmo durante picos de acesso.
Outro aspecto crucial foi a implementação de cachês estratégicos para reduzir a latência e otimizar o tempo de resposta. Dessa forma, consultas frequentes aos dados foram armazenadas em cachês, evitando consultas repetitivas ao banco de dados e acelerando o processo de recuperação de informações.
Com essas melhorias implementadas no sistema de back-end, a Tech Solutions experimentou resultados impressionantes. O tempo de resposta do aplicativo diminuiu significativamente, a plataforma se tornou altamente escalável e a estabilidade geral melhorou consideravelmente. Os usuários ficaram satisfeitos com a experiência aprimorada, e a startup pôde lidar com o crescimento contínuo do negócio sem interrupções ou problemas de desempenho. Gostou de como as coisas podem ser feitas no back-end?
Neste item, irei lhe apresentar os conceitos sobre o que é o desenvolvimento ou programação back-end, sua importância na construção de aplicativos e sistemas e qual a sua relação com o front-end e a arquitetura de um projeto.
Segundo Santana (2021), atualmente, a maioria dos sistemas está sendo desenvolvido utilizando APIs e a arquitetura de microsserviços. Com isso, o back-end é totalmente isolado do front-end, pois assim as pessoas desenvolvedoras conseguirão trabalhar cada uma em sua área sem modificar códigos e sequências da outra.
Também conhecido como o lado do servidor, ou o termo em inglês server-side, refere-se à parte de um aplicativo ou sistema responsável pelo processamento dos dados, regras de negócio e interações com banco de dados. É o componente essencial que suporta a funcionalidade e a lógica por trás das interfaces visíveis para os usuários.
O(a) Técnico(a) em Desenvolvimento de Sistemas, que atua com back-end, é a pessoa responsável por criar a lógica do negócio, manipular e armazenar dados, implementar segurança e autenticação, gerenciar requisições de clientes e fornecer uma base sólida para o funcionamento eficiente de aplicativos e sistemas web.
Ambiente de desenvolvimento é o nome dado ao local onde o seu código-fonte back-end está sendo executado e para quem ele está disponível. Você não irá desenvolver seu código em um servidor de Cloud, como a AWS da Amazon, com seu cliente assistindo em tempo real o que você faz. Para isso, existem diferentes ambientes de desenvolvimento back-end que as pessoas desenvolvedoras utilizam para criar e testar aplicativos e sistemas. Você pode considerar os quatro tipos de ambientes a seguir como padrão de mercado:
É o ambiente de desenvolvimento configurado diretamente na sua máquina. Geralmente, inclui a instalação do servidor web local, como o Apache ou Nginx, e um banco de dados local, como o MySQL ou o PostgreSQL. O ambiente local permite que os desenvolvedores construam e testem suas aplicações em um ambiente controlado antes de implantá-las em um ambiente de produção. Esse ambiente é popularmente chamado de Localhost.
Nesse tipo de ambiente, o desenvolvimento ocorre em servidores remotos em nuvem em vez de localmente. Falando de back-end, é uma ótima opção, principalmente para o uso de um grande poder computacional que às vezes a sua máquina local não possui.
O ambiente de testes ou homologação é uma réplica do ambiente de produção, onde as pessoas desenvolvedoras realizam testes finais antes de implantar o aplicativo ou sistema em ambiente de produção. Esse ambiente permite identificar e corrigir possíveis problemas ou bugs antes que eles afetem os usuários finais. É comum ter conjuntos de dados reais ou simulados para testar a funcionalidade completa e verificar sua escalabilidade e o seu desempenho. Também é o ambiente em que seu líder ou superior valida a entrega do aplicativo ou uma pequena funcionalidade que foi recém-desenvolvida.
É o ambiente final onde o aplicativo ou sistema é implantado e disponibilizado para os usuários finais. Esse ambiente é configurado em servidores de produção, muitas vezes em data centers ou provedores de nuvens, e deve ser altamente confiável, escalável e seguro. Nesse ambiente, as pessoas desenvolvedoras devem ter cuidado para garantir que a aplicação esteja otimizada e que todos os requisitos de segurança e desempenho sejam atendidos.
Existem diversas linguagens de programação amplamente utilizadas no desenvolvimento de back-end, cada uma com suas próprias características e vantagens. Algumas das linguagens mais populares são:
JavaScript: através do Node.js.
Python: reconhecida por sua legibilidade e simplicidade.
Java: conhecida por sua portabilidade e segurança.
PHP: por muito tempo essa linguagem tem sido uma das mais populares para o desenvolvimento back-end.
Ruby: juntamente ao framework Ruby on Rails, oferece uma abordagem elegante e produtiva para o desenvolvimento back-end.
Ao longo desta e das demais lições, trabalharemos utilizando a linguagem Java para explicar os demais tópicos dentro da programação back-end. Santana (2021) defende que o Java continua sendo a linguagem mais utilizada para o desenvolvimento de aplicações back-end e isso se deve ao grau de maturidade da linguagem e da sua máquina virtual.
Servidores web desempenham um papel fundamental no desenvolvimento back-end, permitindo que os aplicativos e sistemas sejam disponibilizados para os usuários através da internet. Eles são responsáveis por receber as solicitações dos clientes, processá-las, executar a lógica de negócio e fornecer as respostas apropriadas.
Alguns servidores web mais populares usados no desenvolvimento back-end incluem o Apache, o Nginx (pronuncia-se engineX) e o Microsoft IIS. Esses servidores web são capazes de lidar com uma ampla variedade de solicitações, como requisições HTTP e HTTPS, e oferecem recursos avançados, como configurações de segurança, balanceamento de carga e compressão de dados.
Eles são configurados para executar aplicativos e sistemas web, fornecendo uma camada intermediária entre o cliente e o código back-end, garantindo que as solicitações sejam atendidas de forma eficiente e segura.
Se uma das responsabilidades do back-end é a interação e manipulação com banco de dados, nada mais justo que lhe apresentar os dois principais sistemas gerenciadores do mercado. São eles: o MySQL e o PostgreSQL, que são dois dos sistemas de gerenciamento de banco de dados mais populares e amplamente utilizados no desenvolvimento back-end. Ambos oferecem recursos avançados e são capazes de lidar com grandes volumes de dados de maneira eficiente e confiável.
O MySQL é conhecido por sua simplicidade e facilidade de uso, sendo uma escolha popular para aplicativos web de pequeno e médio porte. Já o PostgreSQL é valorizado por sua robustez, escalabilidade e recursos avançados, sendo amplamente utilizado para projetos mais complexos.
Ambos suportam consultas SQL, transações ACID e oferecem opções para replicação de dados e clustering. Além disso, possuem uma comunidade ativa e uma ampla gama de ferramentas e recursos disponíveis, tornando-os escolhas populares para o armazenamento e manipulação de dados no desenvolvimento back-end.
Segundo AWS (2023), APIs são mecanismos que permitem que dois componentes de software se comuniquem usando um conjunto de definições e protocolos.
Uma forma simples de se explicar o conceito de API é uma situação cotidiana, que você com certeza conhece, que é uma situação no restaurante. Digamos que a aplicação back-end seja a cozinha do restaurante, onde as coisas são preparadas, mas essas coisas serão preparadas somente porque alguém (o cliente) pediu. Esse cliente é o front-end, que através do cardápio visualiza o que tem disponível naquele restaurante.
Nessa ideia de restaurante, a API é o garçom que sabe quem pediu cada item do cardápio, e leva o pedido para cozinha e fica “aguardando” uma resposta, – ou seja, o prato pedido – e após receber o pedido da cozinha, o garçom (API) responde ao cliente com o prato solicitado. Ou seja, é o mesmo formato e o modo com o qual uma API trabalha e representa dentro da programação back-end. Com uma pequena diferença que a API pode buscar o back-end por solicitação de um cliente (uma pessoa através de um front-end) ou um outro sistema (integração de sistemas).
Agora que você já aprendeu os conceitos de back-end e seus ambientes, irei lhe propor uma prática para experimentar como um back-end, em sua grande maioria, somente entrega dados brutos nos quais o front-end irá formatar e apresentar para o usuário com o melhor design e experiência para o usuário.
Nesta prática, você precisará do seu navegador de preferência. Você verá o resultado de uma requisição a uma API de back-end que retorna somente dados brutos através da notação JSON (JavaScript Object Notation). Para isso você irá acessar a página do IBGE - Instituto Brasileiro de Geografia e Estatística, que fornece dados sobre o Brasil.
Você pode perceber que tem um vasto conteúdo de dados que podem ser consumidos e utilizados em seu front-end, seu aplicativo ou software, não é? Então, agora, vamos executar um exemplo específico. Você irá clicar em uma das opções de api de back-end disponíveis, mais especificamente em: “https://servicodados.ibge.gov.br/api/v1/localidades/municipios/curitiba”.
Você terá como resposta um JSON com as informações sobre o município de Curitiba. Elas aparecerão de forma linear, com a cor de fonte preta e o fundo da tela branco. Como forma de demonstrar para você essas informações de forma mais organizada, criei a Figura 1. Nela temos as informações sobre o município de Curitiba que foram obtidas através do site, porém apresentadas de uma forma diferente. Veja a seguir:
Após essa prática, você consegue ver o real poder de um back-end servindo uma API, em que é possível consultar um grande volume de dados em pouco tempo.
Observação: com o link utilizado para ver os dados de Curitiba, também é possível consultar os dados de outras cidades. Basta substituir o final do link em que aparece “Curitiba” pelo nome da cidade desejada! Que tal experimentar?
AWS. O que é uma API. Amazon, c2023. Disponível em: https://aws.amazon.com/pt/what-is/api/#:~:text=API%20significa%20Application%20Programming%20Interface,de%20servi%C3%A7o%20entre%20duas%20aplica%C3%A7%C3%B5es. Acesso em: 11 jul. 2023.
SANTANA, E. F. Z. Back-end Java: microsserviços, spring boot e kubernetes. São Paulo: Casa do Código, 2021.
IBGE - INSTITUTO BRASILEIRO DE GEOGRAFIA E ESTATÍSTICA. Serviço Dados IBGE. IBGE, c2023. Disponível em: https://servicodados.ibge.gov.br/api/v1/localidades/municipios/curitiba. Acesso em: 13 jul. 2023.