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

Origem: Wikipédia, a enciclopédia livre.
Conteúdo apagado Conteúdo adicionado
Linha 1: Linha 1:
{{mais notas|data=dezembro de 2015}}
{{mais notas|data=dezembro de 2015}}
Em [[ciência da computação]], '''front-end''' e '''back-end''' são termos generalizados que se referem às etapas inicial e final de um processo. O front-end é responsável por coletar a entrada do usuário em várias formas e processá-la para adequá-la a uma especificação em que o [[back-end]] possa utilizar.
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 coligir 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 ==
== 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'' é uma abstração, simplificando o componente subjacente pelo fornecimento de uma interface [[Usabilidade|amigável]].
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 front (ou "[[Cliente (computação)|cliente]]") é qualquer componente manipulado pelo usuário. O código do lado servidor (ou "back-end") reside no [[servidor]]. A confusão surge quando alguém tem que fazer edições no front-end 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.
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 frontal (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 na parte 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.
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>)
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.
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.
A título de exemplo temos o comando '''mkfs''' pertencente à construção de vários sistemas de ficheiros.


== Redes de computadores ==
== 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.
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 ==
== 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 [[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 [[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.
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
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
|primeiro = Yee
|último = Ka-Ping
|último = Ka-Ping
Linha 51: Linha 51:


== Algumas tecnologias para web ''front-end'' e ''back-end'' ==
== Algumas tecnologias para web ''front-end'' e ''back-end'' ==
=== Front-end ===
===''Front-end''===
*[[React (JavaScript)|React]]
*[[React (JavaScript)|React]]
*[[XHTML]]
*[[XHTML]]
Linha 63: Linha 63:
* [[AngularJS]]
* [[AngularJS]]


=== Back-end ===
===''Back-end''===
* [[PHP]]
* [[PHP]]
* [[Node.js]]
* [[Node.js]]

Revisão das 17h31min de 14 de abril de 2019

Em ciência da computação, front-end, interface frontal ou parte frontal[1] e back-end, parte secundária, parte de suporte ou parte de retaguarda[2] são termos generalizados que se referem às etapas inicial e final de um processo. O front-end é responsável por coligir a entrada do usuário em várias formas e processá-la para adequá-la a uma especificação em que o 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 amigável, como por um exemplo um navegador de Internet, ou um formulário para um determinado usuário.

Em 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 frontal (ou "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 na parte 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 arquivos do computador e um 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 filtros - programas standalone que também podem servir como front-ends e back ends para outros programas. (Eles funcionam canalizando dados entre eles mesmos, muitas vezes para processamento de texto. Por exemplo: $ grep palavra ~usuario/dir/arquivodeentrada | sort | tee ~usuario/dir/arquivodesaida)

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 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 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.[3]

Algumas tecnologias para web front-end e back-end

Front-end

Back-end

Referências

  1. Grupo de peritos, CT113-Comissão Técnica de Terminologia Informática, Portugal, 2000, IATE. «front-end». IATE. Consultado em 1 de abril de 2019 
  2. Grupo de peritos, CT113-Comissão Técnica de Terminologia Informática, Portugal, 2000, IATE. «back-end». IATE. Consultado em 1 de abril de 2019 
  3. Ka-Ping, Yee. «Definition of a Mediator». Ka-Ping. In the context of WWW applications, a mediator is a service that functions simultaneously as a server on its front end and as a client on its back end. 
Ícone de esboço Este artigo sobre informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.