Back-end e front-end são termos que se referem a lados in­de­pen­den­tes e opostos, apesar de com­ple­men­ta­res, de qualquer software. Se com­pa­rar­mos um software com um carro, podemos afirmar que o back-end seria o motor, o chassi, a parte elétrica e os demais elementos es­tru­tu­rais. O front-end, por sua vez, abarcaria o volante, o painel, os botões de abrir e fechar janelas e as demais es­tru­tu­ras feitas para o motorista usar ati­va­mente.

Definição

Back-end é o bastidor, ou seja, a parte “de trás” dos sites e apli­ca­ções, ina­ces­sí­vel a usuários finais. É no back-end que se dá tanto o ar­ma­ze­na­mento quanto o pro­ces­sa­mento de dados.

O que compõe o back-end?

O back-end é composto de dois elementos:

  1. Da parte de um software que processa os dados.
  2. Da área ad­mi­nis­tra­tiva de um software, ina­ces­sí­vel a usuários finais.

Um software pode ser com­pre­en­dido como uma máquina de pro­ces­sa­mento de dados, que executa cálculos e faz uso dos re­sul­ta­dos obtidos para decidir como agir. Ainda, softwares criam e armazenam dados em bancos de dados, como no MongoDB e no MySQL. Ele faz tudo isso nos bas­ti­do­res, ou seja, no back­ground, longe dos olhos e do alcance dos usuários.

Ao contrário do front-end, orientado aos usuários finais, o back-end é orientado às ne­ces­si­da­des técnicas de um software. Efi­ci­ên­cia, de­sem­pe­nho, es­ca­la­bi­li­dade e segurança estão entre as suas res­pon­sa­bi­li­da­des.

Para respeitar o princípio da separação de in­te­res­ses da pro­gra­ma­ção, back-end e front-end são im­ple­men­ta­dos como camadas in­de­pen­den­tes. No entanto, ambas as camadas são igual­mente ne­ces­sá­rias para que um software funcione plena e cor­re­ta­mente. Assim, um back-end sem um front-end nada mais é que uma máquina sem botões que pos­si­bi­li­tem a operação dela.

Nota

Se você quer se apro­fun­dar nas di­fe­ren­ças entre o back-end e o front-end, acesse esse artigo es­pe­ci­a­li­zado do nosso Digital Guide.

Quem pode acessar o back-end?

Dois grupos de pro­fis­si­o­nais podem acessar e trabalhar no back-end de um site ou aplicação:

  1. Ad­mi­nis­tra­do­res de sistemas (admins), que precisam acessar o back-end para gerenciar o res­pec­tivo sistema.
  2. De­sen­vol­ve­do­res back-end, para criar, manter e continuar a de­sen­vol­ver o código do res­pec­tivo software.

A seguir ex­pli­ca­re­mos, em mais detalhes, o papel de cada um desses grupos de pro­fis­si­o­nais que atuam no back-end:

Quais são os papéis de ad­mi­nis­tra­do­res de sistemas no back-end?

Para res­pon­der­mos a essa pergunta, tomaremos o popular sistema de ge­ren­ci­a­mento de conteúdo (CMS) WordPress como exemplo. Se você realizar login no WordPress como ad­mi­nis­tra­dor, será re­di­re­ci­o­nado ao back-end do seu site, também chamado de Painel. É por essa interface que você poderá criar, editar e excluir conteúdo.

Dica

Com o Managed Hospedagem para WordPress da IONOS, o seu site WordPress ficará bem mais rápido e seguro.

Além de operações CRUD básicas, pelo back-end do WordPress, ad­mi­nis­tra­do­res gerenciam elementos como funções de usuários WordPress e plugins de backup do WordPress.

Nota

Embora tec­ni­ca­mente o Painel do WordPress seja con­si­de­rado um back-end, ele é dis­po­ni­bi­li­zado por uma interface gráfica de usuário (con­si­de­rada um front-end), o que prova que back-end e front-end podem, em de­ter­mi­na­das situações, se misturar.

Quais são os papéis de de­sen­vol­ve­do­res no back-end?

Ao contrário de ad­mi­nis­tra­do­res, de­sen­vol­ve­do­res não precisam fazer login para acessar o back-end de um site ou aplicação. Na verdade, eles utilizam um ambiente de de­sen­vol­vi­mento para de­sen­vol­ver o código-fonte do back-end, que será executado em um servidor ou contêiner.

Depois da re­a­li­za­ção de testes ma­jo­ri­ta­ri­a­mente autônomos, os códigos de­sen­vol­vi­dos são carregado em ser­vi­do­res por meio de fer­ra­men­tas de in­te­gra­ção contínua ou por plugins — alguns plugins de de­sen­vol­vi­mento do WordPress exe­cu­ta­dos no back-end podem ser ge­ren­ci­a­dos por admins.

Ao contrário do front-end, que é executado no cliente, o back-end é executado no servidor. Via de regra, pilhas de tec­no­lo­gia (web stacks) são usadas para o de­sen­vol­vi­mento e para a execução de códigos. Entre as diversas pilhas de tec­no­lo­gia populares estão LAMP e MEAN.

Uma pilha de tec­no­lo­gia possui um sistema ope­ra­ci­o­nal ou contêiner como ambiente de execução. Dentro desse ambiente, um servidor web recebe e responde às so­li­ci­ta­ções . Os scripts são exe­cu­ta­dos em uma linguagem de pro­gra­ma­ção web e servem de conexão entre o servidor e o banco de dados:

Pilha de tec­no­lo­gia Ambiente de execução Servidor Banco de dados Linguagem de pro­gra­ma­Ã§Ã£o
LAMP Linux Apache MySQL PHP
MEAN Node.js Express.js MongoDB Angular (Ja­vaS­cript)

De­sen­vol­ve­do­res back-end costumam usar fra­meworks web para sim­pli­fi­car a consulta, o pro­ces­sa­mento e o ar­ma­ze­na­mento dos dados. Por esse motivo, apre­sen­ta­re­mos, a seguir, alguns dos fra­meworks mais im­por­tan­tes para de­sen­vol­ve­do­res back-end.

Nota

Pro­gra­ma­do­res que de­sen­vol­vem tanto o back-end quanto o front-end de sites e apli­ca­ções são chamados de de­sen­vol­ve­do­res full stack.

Quais são os fra­meworks mais im­por­tan­tes para o back-end?

Fra­meworks ajudam a sim­pli­fi­car o trabalho de de­sen­vol­vi­mento do back-end de um site ou aplicação. Por exemplo, é graças a um framework para back-end que você não precisa criar códigos do zero e repetidas vezes, como ao de­sen­vol­ver processos de au­ten­ti­ca­ção de usuários e de conexão com o banco de dados. Fra­meworks costumam integrar lin­gua­gens e templates di­fe­ren­tes para gerar o código HTML que será utilizado pelo front-end.

O melhor framework para back-end a ser usado dependerá do seu ambiente de de­sen­vol­vi­mento e da linguagem de pro­gra­ma­ção utilizada. As lin­gua­gens de pro­gra­ma­ção mais comuns são PHP, Python, Ruby, Ja­vaS­cript e Java. Para essas lin­gua­gens, apre­sen­ta­re­mos os fra­meworks para back-end mais populares e in­te­res­san­tes.

Symfony e Laravel: Fra­meworks para back-end em PHP

Symfony e Laravel são dois dos mais populares fra­meworks para back-end que existem. Ambos podem ser usados na pro­gra­ma­ção de apli­ca­ções web so­fis­ti­ca­das, sem que você precise começar o trabalho do zero. Enquanto o Laravel é mais simples e, portanto, mais fácil de aprender a usar, o Symfony é uma opção mais robusta e flexível.

Os dois fra­meworks são igual­mente populares pelo design modular. Muitas das tec­no­lo­gias web mais úteis foram escritas a partir do Symfony. O Laravel, por sua vez, também contribui bastante com os seus templates Blade.

Ruby on Rails: O clássico framework para back-end em Ruby

O framework para back-end Ruby on Rails (RoR) foi con­si­de­rado re­vo­lu­ci­o­ná­rio ao ser lançado e ajudou a linguagem de script Ruby a alcançar seu grande sucesso. Ousamos dizer que não existe nenhum outro framework tão focado em pro­du­ti­vi­dade e sa­tis­fa­ção dos de­sen­vol­ve­do­res quanto esse. Ainda, o RoR po­pu­la­ri­zou a abordagem model-view-con­trol­ler (MVC), abrindo portas para diversos fra­meworks para back-end que o sucederam.

Dica

Este tutorial do nosso Digital Guide ensina você como criar uma aplicação com Ruby on Rails.

Django: Framework para back-end para programar em Python

Python é uma linguagem de script web clássica. Já o Django é o poderoso framework para back-end que permite que apli­ca­ções web em Python sejam de­sen­vol­vi­das muito mais ra­pi­da­mente. Ele também adota o padrão model-view-con­trol­ler, além de possuir um mecanismo próprio de templates.

Dica

Quer começar a programar em Python? Comece pelo nosso tutorial in­tro­du­tó­rio de Python.

Express e Node.js: Escrever apli­ca­ções web em Ja­vaS­cript

An­ti­ga­mente, uma linha invisível separava as lin­gua­gens de pro­gra­ma­ção des­ti­na­das ao back-end e ao front-end. HTML, Ja­vaS­cript e CSS eram exemplos de lin­gua­gens uti­li­za­das somente pelo front-end, enquanto lin­gua­gens como PHP, Python, Perl e Ruby eram ex­clu­si­vas para o back-end. Contudo, assim que o ambiente de execução Node.js para Ja­vaS­cript foi lançado, essa linha invisível se rompeu. Ele fez com que fosse possível usar Ja­vaS­cript tanto no front-end quanto no back-end.

O Node.js oferece toda a base para a criação de apli­ca­ções web em Ja­vaS­cript, além de pos­si­bi­li­tar que fra­meworks web como o Express sejam usados sobre ele. A com­bi­na­ção Express e Node.js se po­pu­la­ri­zou como parte da pilha de tec­no­lo­gia MEAN, com o MongoDB e o framework para front-end Angular.

Spring: Framework para back-end para apli­ca­ções web em Java

Sozinha, a linguagem de pro­gra­ma­ção Java não é con­si­de­rada su­fi­ci­ente para o de­sen­vol­vi­mento de apli­ca­ções web modernas. No entanto, graças ao framework Spring, já é possível de­sen­vol­ver apli­ca­ções complexas em Java, em uma base estável. De­sen­vol­vi­men­tos mais novos, como o Quarkus, pos­si­bi­li­tam execuções de alto de­sem­pe­nho em con­têi­ne­res.

Dica

O tutorial de Spring do nosso Digital Guide ensina você como criar apli­ca­ções em Java com o framework Spring.

Ir para o menu principal