Front-end e back-end: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Linha 1:
{{mais notas|data=dezembro de 2015}}
Em [[ciência da computação]], '''''front-end,'' interface frontal''' ou '''parte frontal'''<ref>{{citar web|url=https://iate.europa.eu/entry/result/1696084/en-la-mul-pt|titulo=front-end|data=|acessodata=01-04-2019|publicado=IATE|ultimo=Grupo de peritos, CT113-Comissão Técnica de Terminologia Informática, Portugal, 2000|primeiro=IATE}}</ref> e '''''back-end''''', '''parte secundária''', '''parte de suporte''' ou '''parte de retaguarda'''<ref>{{citar web|url=https://iate.europa.eu/entry/result/1483291/en-la-mul-pt|titulo=back-end|data=|acessodata=01-04-2019|publicado=IATE|ultimo=Grupo de peritos, CT113-Comissão Técnica de Terminologia Informática, Portugal, 2000|primeiro=IATE}}</ref> são termos generalizados que se referem às etapas inicial e final de um processo. O ''front-end'' é responsável por coletarcoligir a entrada do usuário em várias formas e processá-la para adequá-la a uma especificação em que o [[back-end|''back-end'']] a possa utilizar.
 
== Desenvolvimento de software ==
Em [[arquitetura de software]] há muitas camadas entre o hardware e o [[usuário final]]. Cada uma pode ser dita como tendo um ''front-end'' e um ''back-end''. O ''front-end'' é uma abstração, simplificando o componente subjacente pelo fornecimento de uma interface [[Usabilidade|amigável]], como por um exemplo um navegador de Internet, ou um formulário para um determinado usuário.
 
Em [[projeto de software|projetos de software]], por exemplo, a arquitetura [[modelo-visão-controlador]] fornece o ''front-end'' e o ''back-end'' para o [[banco de dados]], o usuário e para os componentes de processamento. A separação de sistemas de software em ''front-end'' e ''back -end'' simplifica o desenvolvimento e separa a manutenção. Uma [[regra de ouro]] é que o lado frontfrontal (ou "[[Cliente (computação)|cliente]]") é qualquer componente manipulado pelo usuário. O código do lado do servidor (ou "''back-end"'') reside no [[servidor]]. A confusão surge quando alguém tem que fazer edições nona front-endparte frontal para arquivos do lado servidor. Muitos projetistas [[HTML]], por exemplo, não precisam estar no servidor quando eles estão desenvolvendo o HTML. Reciprocamente, engenheiros do lado servidor, por definição, nunca estão em qualquer coisa, mas num servidor. Considera-se os dois para, finalmente, fazer um site web funcional e interativo.
 
Para subsistemas de computação maiores, um [[gerenciador de arquivos]] gráfico é um ''front-end'' para o [[sistema de arquivo]]s do computador e um [[Shell (computação)|shell]] faz a interface com o [[sistema operacional]]. O ''front-end'' reveste o usuário e o ''back-end'' executa os programas do sistema operacional em resposta.
 
Usar a [[interface de linha de comando]] (ILC) exige a aquisição de terminologia especial e memorização de comandos, desta forma uma [[interface gráfica do usuário]] (IGU) age como um [[ambiente desktop]] de ''front-end'', em vez disso. No ambiente [[Unix]], [[ncurses]] é um ''front-end'' semi-gráfico simples para a ILC. No nível de ILC do Unix, propriamente dito, muitos programas orientados a stream de bytes (isto é, usando stdin/stdout/stderr como suas interfaces) agem como [[Filtro (Unix)|filtro]]s - programas standalone que também podem servir como ''front-ends'' e back ends para outros programas. (Eles funcionam ''[[Encadeamento|canalizando]]'' dados entre eles mesmos, muitas vezes para processamento de texto. Por exemplo: <code>$ grep palavra ~usuario/dir/arquivodeentrada | sort | tee ~usuario/dir/arquivodesaida</code>)
 
Em alguns sistemas, tais como aqueles baseados em Unix chama-se '''front-end''' às interfaces gráficas que permitem ao usuário interagir com programas que trabalham originalmente em modo texto.
 
A título de exemplo temos o comando '''mkfs''' pertencente à construção de vários sistemas de ficheiros.
 
== Redes de computadores ==
Em [[redes de computadores]], ''front-end'' pode se referir a qualquer hardware que otimiza ou protege o tráfego de rede. Ele é chamado de [[hardware front end de aplicação|hardware front-end de aplicação]] devido ser localizado na fronteira da rede. O tráfego de rede passa através do hardware do ''front-end'' antes de entrar na rede.
 
== Outros usos ==
Em [[Sistema de gerenciamento de conteúdo|sistemas de gerenciamento de conteúdo]] os termos ''front-end'' e ''back-end'' podem se referir às visões do usuário final do SGC e às visões administrativas, respectivamente.
 
Em [[compiladores]], o ''front-end'' traduz um [[código fonte]] de programa de computador em uma [[representação intermediária]] e o ''back-end'' trabalha com a representação intermediaria para produzir código em uma linguagem de saída. O ''back-end'' normalmente otimiza-se para produzir código que execute mais rápido. A distinção de ''front-end/back-end'' pode separar a seção [[parser]] que lida com o código fonte e o ''back-end'' que [[gera código e o otimiza]]. Alguns projetos, como o [[GCC]], oferecem escolhas entre vários ''front-ends'' (analisando linguagens fonte diferentes) ou ''back-ends'' (gerando código para processadores de alvo diferentes).
 
Em [[síntese de voz]], o ''front-end'' refere-se à parte do sistema de síntese que converte o texto de entrada em uma representação [[fonética]] simbólica e o ''back-end'' converte a representação fonética simbólica em sons reais.
 
No contexto de aplicações [[WWW]], um ''mediador'' é um serviço que funciona simultaneamente como um servidor em seu ''front-end'' e como um cliente em seu ''back-end''.<ref>{{citar web
|primeiro = Yee
|último = Ka-Ping
Linha 51:
 
== Algumas tecnologias para web ''front-end'' e ''back-end'' ==
=== ''Front-end ''===
*[[React (JavaScript)|React]]
*[[XHTML]]
Linha 63:
* [[AngularJS]]
 
=== ''Back-end ''===
* [[PHP]]
* [[Node.js]]