O termo 'Front-End' é sinônimo de 'Client-Side'? Se assim for, este é sempre o caso?


18

Como desenvolvedor web relativamente novo (autodidata), ouvi os termos front-end , lado do cliente , back-end e servidor com bastante frequência. Para mim, front-end e back-end sempre foram sinônimos de cliente e servidor, respectivamente.

No entanto, quando comecei a trabalhar com estruturas MVC como o CodeIgniter, deparei-me com algumas instâncias de front-end que se referem basicamente a qualquer coisa que o usuário final vê (incluindo código do servidor), enquanto o back-end se refere a qualquer coisa o usuário final não vê (incluindo CMSs). Para mim, o lado do cliente e o servidor são muito mais concretos. eles têm uma linha muito distinta que os separa. Por outro lado, front-end e back-end não.

Em uma conversa que me lembro de ter com outro desenvolvedor da web, ele se referiu ao CodeIgniter (na íntegra) como um front-end, e isso me deixou louco. Eu não tinha certeza se deveria corrigi-lo e dizer que o CodeIgniter era meu back-end ou se minhas definições dos dois termos estavam completamente erradas.

A busca por definições de front-end e back-end me confundiu um pouco mais em alguns aspectos, embora eles tenham esclarecido algumas coisas. Gostaria apenas de saber onde as linhas são traçadas entre esses quatro termos e como elas se agrupam no contexto do desenvolvimento da Web (especificamente em uma pilha LAMP).


1
Eu trabalhei com um cara que usou "front end" e "back end" para significar "frente voltada" e "voltada para trás". Se ele estava ou não "correto" é outra questão.
user16764 27/02

Devemos usar a palavra "posterior". Brincando. Eu gostaria que houvesse outra frase para isso. Sinônimos para "Back end" não são encorajadores.
Erik Aronesty

Respostas:


16

Não acredito que exista uma definição formal para esses termos e, como você observou, em alguns casos há sobreposição.

front-ende se client-sidesobrepõem.
server-sidee back-endtambém se sobrepõem.

Se eu fosse dividir os cabelos, ofereceria esses limites ásperos:

  • client-sideé um aplicativo que é executado no computador dos usuários. Pode ser um aplicativo independente (com mais frequência) ou pode se referir a uma interface baseada em navegador da web (menos provável).
  • front-endtambém enfrenta o usuário final e geralmente é executado em uma interface baseada em navegador da web. Não ouvi falar de clientes grossos sendo referidos como front-end.
  • back-endrefere-se a processos e serviços que estão sendo executados em outro servidor ou em segundo plano no computador dos usuários. Na maioria das vezes, refere-se a processos que não estão no computador do usuário final. Mas a chave, como você mencionou, é que o usuário final não está necessariamente ciente dos processos em execução.
  • server-sideé uma extensão, back-endmas reforça explicitamente o fato de que os processos estão sendo executados em outro lugar e não nos computadores dos usuários finais.

A título de exemplo, e para destacar a confusão entre os termos, usarei o Minecraft como exemplo.

Minecraft tem um

  • client-side aplicativo quando você executa os arquivos jar localmente com sua própria JVM.
  • front-end se você optar por executar o aplicativo cliente no seu navegador da web
  • back-end processo que pode ser executado localmente em sua máquina se você estiver no modo independente
  • server-side processo se você optar por fazer login em um servidor que hospeda o aplicativo de servidor Minecraft.

Se você pesquisar algumas das estatísticas do Minecraft, verá que elas simplesmente designam um componente cliente serverpara o jogo; eles não se importam necessariamente onde esses componentes são executados.


Para responder diretamente às suas perguntas:

O termo 'Front-End' é sinônimo de 'Client-Side'?

Mais ou menos, mas não realmente. Há uma nuance entre os termos se você estiver discutindo coisas fora do mundo baseado na web. Se você está estritamente dentro do mundo da Web, sim, eles são funcionalmente sinônimos.

Se assim for, este é sempre o caso?

No mundo da web, eu diria que sim. Em outros domínios, eu diria que não, conforme explicado nas definições grosseiras que ofereci.


Foi sobre o que eu pensei. Obrigado por me ajudar a esclarecer isso na minha cabeça.
DC_ 26/02

2
Back-end é frequentemente usado para significar a parte de administração do lado do cliente de um site / aplicativo.
Florian Margaine 27/02

18

O lado do servidor é executado no servidor. O lado do cliente é executado no cliente. O back-end está processando dados. O front-end está exibindo.

Veja esta página da web. Puxar todos os comentários do banco de dados é um trabalho de back-end do lado do servidor. A disposição desses dados em um modelo é um trabalho front-end do lado do servidor. Os widgets de votação AJAX e a caixa de entrada de texto sofisticada são front-end, do lado do cliente.


4
+1 para apontar a ortogonalidade entre o conceito front-end / back-end e o conceito do lado do cliente / servidor
Francesco Feltrinelli

1

Geralmente, acho que o uso do lado do cliente e do servidor para descrever o desenvolvimento / desenvolvedores é menos vago. A parte do lado do cliente em que estamos manipulando / formatando dados pode ser vista como um componente de back-end. Por outro lado, há todo o modelo que costuma acontecer no back-end, sendo que "para o front-end" tende a resultar em pessoas falando sobre eles como desenvolvimento de front-end em Java ou C #. É raro, mas já vi isso nas descrições de cargos.

Mas sim, de um modo geral, o front end é a parte em que a interação acontece. O back-end é a parte em que toda essa interação se transforma em algo útil.


0

Esta pergunta é um pouco mais antiga, mas deixe-me adicionar meu 2c:

No meu próprio desenvolvimento web, usei o termo "frontend", que significa código - ou outros recursos - que são processados ​​no navegador por um tempo. Agora, eu uso o termo "cliente", porque pode ser confuso esp. ao fazer aplicativos da web. (Aplicativos de página única)

Simplesmente porque no lado de back-end, há também um "front-end", o que significa em geral a parte do aplicativo responsável pela saída (para o navegador). Então "frontend" pode realmente significar duas coisas diferentes. O termo "cliente", no entanto, está descrevendo mais claramente algo relacionado ao cliente real (neste caso, o navegador).

PS: Bem, talvez eu deva também mudar meu apelido para "client_dev" agora;)


0

O lado do cliente em um aplicativo Web está sob o controle do usuário / cliente, o lado do servidor está sob o controle do desenvolvedor. Essa é uma das razões pelas quais se deve fazer a validação de dados no servidor.

Os termos front-end e back-end são frequentemente usados ​​como sinônimos para o lado do cliente e o servidor e, em muitos casos, está ok. No entanto, também existem contra-exemplos importantes. Para mim , o front end é algo que mostra algo para o usuário.

Na imagem a seguir, é possível ver tecnologias / conceitos típicos e como eles se encaixam nos quadrantes (front end, back end) / (lado do cliente, lado do servidor).

insira a descrição da imagem aqui

Desenvolvedores Front-End e Back-End

O desenvolvedor de front-end e back-end são duas funções muito comuns. A linha fica um pouco confusa quando você tem coisas como React, que pode ser renderizada no servidor e Flask, que inclui o mecanismo de modelagem jinja .

E, embora eu coloque tecnologias como banco de dados Web SQL e API de banco de dados indexado no quadrante "back-end do lado do cliente", a função que normalmente sabe disso é a função de desenvolvedor front-end.

  • Os desenvolvedores de front-end devem conhecer HTML, CSS, o DOM e os recursos gerais do navegador (por exemplo, caniuse ). Normalmente eles conhecem algum jQuery ou React. Embora seja back-end de acordo com minha definição, eu esperaria que os desenvolvedores de front-end soubessem sobre o armazenamento do lado do cliente
  • Os desenvolvedores de back-end devem conhecer servidores da Web como nginx, gunicorn, Apache ou node.js. Eles devem conhecer pelo menos um banco de dados SQL (Postgres, MariaDB / MySQL, ...), armazenamentos de valores-chave (Redis), desenvolvimento de API (REST e GraphQL). LAMP era uma pilha típica há um tempo atrás. Eu NÃO esperaria que um desenvolvedor de back-end soubesse algo sobre navegadores!

UI Designer x Desenvolvedor Front-End

Duas outras funções são o designer da interface do usuário e o desenvolvedor front-end. Portanto, uma diferença é que um é designer e o outro é desenvolvedor.

Objetivo:

  • Designers de interface do usuário esboçam a experiência do usuário
  • O desenvolvedor Front-End garante a aparência esperada (criando a coisa real a partir do rascunho)

Ferramentas:

  • Os designers de interface do usuário usam principalmente o Adobe Photoshop / Illustrator / Sketch / Balsamiq / Invision.
  • Os desenvolvedores de front-end usam React, Vue, Angular

APIs: REST e GraphQL

As APIs são fornecidas pelas equipes de back-end e são usadas pelos front-ends para preencher o aplicativo com os dados. O back-end é o armazenamento persistente entre dispositivos, o front-end é a camada de apresentação. A API é o canal de comunicação para ambos.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.