Antes de tudo, é importante desmistificar de vez o que é Back-end. Este termo traduz uma especialização na programação e como o próprio nome sugere, traz a ideia de “bastidores” de uma requisição da aplicação.

Devido a complexidade dos sistemas, foram direcionadas partes específicas de uma aplicação. De um lado, o front-end atua com os elementos gráficos de um site ou aplicativo para a interação do usuário (lado cliente). Do outro lado, o desenvolvimento Back-end, orientado por dados, opera na camada de dados do lado do servidor com funcionalidades da solução de software que os usuários não veem.

Pessoas desenvolvedoras back-end manobram estruturas e algoritmos para implementação e exibição de dados. De forma simplista, atuam como uma ponte entre o navegador e o banco de dados. Elas recebem os dados do front, processam, aplicam as regras de negócios e persistem para o banco de dados, ou uma outra API - serviços externos, além de garantir um bom desempenho da aplicação.

Banner de divulgação da Imersão IA da Alura em colaboração com o Google. Mergulhe em Inteligência artificial com a Alura e o Google. Serão cinco aulas gratuitas para você aprender a usar IA na prática e desenvolver habilidades essenciais para o mercado de trabalho. Inscreva-se gratuitamente agora!

Na área de desenvolvimento, sobretudo quando estamos iniciando na programação, é comum nos depararmos com diversos conceitos interligados, mas que ainda causam desordem. Algumas vezes confundimos linguagens, frameworks, bibliotecas, entre outras. Nesse sentido, para uma melhor compreensão básica dos processos, segue um rol dos principais conceitos utilizados no mundo back-end:

Principais conceitos
MVCPadrão de arquitetura de software que sugere uma divisão de responsabilidades dentro de uma aplicação. Model ou Modelo: objeto de modelo de negócio responsável pelo gerenciamento dos dados por meio das funções, lógica e regras de negócios estabelecidas. View ou Visão: responsável pela comunicação com o usuário, mostra na interface as informações do modelo. Controller ou Controlador: camada que intermedia as requisições enviadas pela view com as respostas providas pelo modelo.
APIApplication Programming Interface ou Interface de Programação de Aplicação. As APIs são mecanismos que permitem a comunicação (cliente - servidor) entre dois componentes de software por meio de um conjunto de definições e protocolos. Sua classificação varia de acordo com sua arquitetura e escopo de uso: APIs privadas, APIs públicas, APIs de parceiros e APIs compostas. Existem quatro formas de funcionamento: APIs SOAP, APIs RPC, APIs WebSocket e APIs REST.
Banco de Dados RelacionalArmazenamento de dados baseado em tabelas com linhas na horizontal e colunas na vertical. Sua principal característica é a necessidade de estruturação de esquemas para a inserção de dados. Atua com a linguagem de programação padronizada - Structured Query Language (SQL) para manipulação e execução de consultas analíticas dos dados.
Banco de Dados Não-RelacionalArmazenamento de dados representados por coleções de pares de valores-chave (key-values). Também conhecidos como arrays associativos formatados em filas. Trata-se de um esquema dinâmico de banco de dados NoSQL otimizado para os requisitos específicos do tipo de dados que está sendo armazenado.
FrameworksEstrutura que envolve um conjunto de bibliotecas ou componentes usados para criar uma base onde a aplicação será construída. Proporciona reusabilidade e conexões de linhas de código e provê funcionalidades que se adequa a diversas aplicações.
BibliotecasColeção de subprogramas com diversas finalidades para redução do uso de código no desenvolvimento de software. Permite o compartilhamento e a alteração de código e dados de forma modular.

Desde 2000 surgiram inúmeras linguagens de programação novas - é interessante conhecer, comparar cada tecnologia. Para uma visão geral, segue as principais linguagens de codificação de back-end e suas características:

Principais linguagens
JavaCaracterísticas: orientado a objetos, independente de plataforma, portabilidade, multithread, digitação dinâmica. Ferramentas adicionais: Spring, Grails, Blade, Dropwizard. Aplicativos famosos: LinkedIn, Jenkins, Yahoo, NASA WorldWind.
C#Características: suporte multiplataforma, programação assíncrona, injeção de dependência, proteção CSRF. Ferramentas adicionais: .NET, Xamarin. Aplicativos famosos: GoDaddy, Marketwatch, Visual Studio.
JavaScriptCaracterísticas: scripts leves, digitação dinâmica, programação orientada a objetos, vasto suporte à comunidade. Ferramentas adicionais: Node.js, Express, MeteorJS. Aplicativos famosos: Facebook, Google, eBay, Netflix.
PHPCaracterísticas: compatibilidade entre plataformas, relatórios de erros e exceções, monitoramento de acesso em tempo real. Ferramentas adicionais: Laravel, Cake PHP, Symfony, CodeIgniter. Aplicativos famosos: WordPress, Yahoo, MailChimp, Wikipedia.
PythonCaracterísticas: Orientado a objetos, sintaxe simples, variedade de bibliotecas, alto nível de segurança. Ferramentas adicionais: Django, Pyramid e Flask. Aplicativos famosos: Google, Instagram, Dropbox.
RubyCaracterísticas: orientado a objetos, flexibilidade, recurso expressivo, digitação dinâmica, digitação de pato (Duck Typing). Ferramentas adicionais: Ruby on Rails, Sinatra, Grape, Padrino. Aplicativos famosos: Airbnb, Shopify, GitHub, Basecamp.
C++Características: orientado a objetos, independente de plataforma e máquina, baseado em compilador, alocação de memória dinâmica. Ferramentas adicionais: Boost, Qt. Aplicativos famosos: YouTube, Adobe, Windows OS, Mozilla.
GoLangCaracterísticas: orientado a objetos, compilada de código aberto, estaticamente tipada, possui coleta de lixo e suporte a testes. Ferramentas adicionais: Gin, Beego, Eco, Kit. Aplicativos famosos: Twitter, Google, Netflix, Microsoft, Riot Games.
ElixirCaracterísticas: linguagem funcional (imutabilidade, funções e código declarativo), tolerância de erros, ações simultâneas, velocidade. Ferramentas adicionais: Phoenix, Nerves, Plug, Sugar. Aplicativos famosos: Discord, Moz, Adobe, Whatsapp.
RustCaracterísticas: gerenciamento e segurança de memória, integrada de compilação e gerenciamento de pacotes, sistemas embarcados. Ferramentas adicionais: Azul, Biela, Actix, Foguete, Níquel. Aplicativos famosos: Firefox, Dropbox, Cloudflare.
DartCaracterísticas: orientado a objetos e multi-paradigma, de código aberto fortemente tipada, comporta análises estáticas.Ferramentas adicionais: Flutter Aplicativos famosos: Nubank

As tecnologias de programação back-end e suas estruturas são equivalentes à diversos projetos como:

  • Ferramentas interativas online
  • Sites
  • Rede
  • Recursos de segurança
  • Aplicativos móveis
  • Aplicativos para computador
  • Jogos online
  • Servidores da web
  • Protótipos de software
  • Coleção de dados
  • Conexões de banco de dados

Este artigo conceitua alguns termos mais comuns da programação back-end. Para mergulhar neste mundo, conheça a Escola de Programação da Alura Latam e sua sequência de cursos e conteúdos pensado para facilitar seus estudos.

Adriana Oliveira
Adriana Oliveira

Scuba Back-End, estudante de Sistemas para Internet, mergulhada em tecnologias. Busco desenvolver habilidades que me permitam contribuir para o alcance de mais acessos e servir a comunidade. Apaixonada pela natureza, música, artes e esportes.

Veja outros artigos sobre Programação