Front-end escrito nos idiomas usados ​​para o back-end! [fechadas]


10

Pela minha experiência em desenvolvimento web, eu sei que linguagens como PHP, Java, Python..etc são usadas para material de desenvolvimento de back-end (software em execução no servidor) e, para linguagens de front-end, JS / HTML / CSS.

Mas vejo muitas empresas dizerem que usam, por exemplo, PHP para desenvolvimento front-end e python para back-end.

Isso significa que o PHP é o front-end para chamar outros serviços escritos em outros idiomas via REST, RPC ..etc?


3
é difícil ler este post (parede de texto). Você se importaria de editá -lo em uma forma melhor?
mosquito

Respostas:


36

Você confundiu os termos "front-end" e "back-end" com "lado do servidor" e "lado do cliente". "Back-end" geralmente se refere a sistemas que não são diretamente expostos ao usuário (servidores de banco de dados, middleware etc.), enquanto "front-end" geralmente se refere ao aplicativo (no caso da Web, isso normalmente significa estática e páginas da web dinâmicas) acessadas diretamente pelo cliente.

Em um aplicativo Web, o cliente (navegador do usuário) acessa páginas da Web que são armazenadas ou geradas dinamicamente "lado do servidor" por tecnologias "front-end". Esses componentes de front-end podem, por sua vez, extrair dados ou outras informações dos componentes de "back-end". Portanto, um aplicativo Web escrito em PHP seria "front-end", mas "do lado do servidor". No entanto, se as páginas da web contivessem algum javascript a ser executado pelo navegador do usuário, esse código javascript seria executado "no lado do cliente".

Espero ter removido alguma confusão, mas agora corro o risco de criar mais.

Primeiro, temos o AJAX , que é um código (geralmente JavaScript) executado no cliente (portanto, do lado do cliente), para criar as páginas da Web que você vê, puxando informações dos serviços voltados para a Internet que não geram páginas da Web. Os serviços estão gerando suas informações do lado do servidor no front-end (já que são públicos e você pode apontar seu navegador diretamente para eles, se souber o URL).

Em segundo lugar, o JavaScript não se limita ao uso do lado do cliente, é claro. Tornou-se cada vez mais popular como uma linguagem "do lado do servidor" (consulte o node.js para um exemplo). Como tal, seu uso mais comum é exatamente para o tipo de serviços voltados para a Internet que descrevi no parágrafo anterior.

As coisas costumavam ser muito mais simples antes da Web 2.0 . Naquela época, no contexto de aplicativos da web , o front-end era onde as páginas da web eram geradas, enquanto o JavaScript era executado apenas no lado do cliente e fazia pouco uso das páginas da web, como imagens de alta iluminação, quando você movia o mouse sobre elas. No entanto, essa simplicidade deixou as pessoas com preguiça de suas definições. Agora, a situação é mais complexa, por isso é importante ser preciso sobre esses termos.

(Ah, e se você tem de usar PHP, mantenha-o na extremidade dianteira. É enfaticamente é não uma tecnologia boa back-end. E se você alguma vez encontrar alguém criar um navegador que executa do lado do cliente PHP, matá-los.)


Dada sua última frase, você pode desfrutar de code.google.com/p/php-to-js :-P
Andrea

se todo idioma pode ser usado no front-end e todo idioma pode ser usado no back-end, a distinção não é inútil da maneira como foi solicitada? só pode ser respondida no contexto de um aplicativo.
Claudiu Creanga

7

Acho que sua pergunta pode ser bastante específica para o PHP, pois não consigo ver nenhuma das outras tecnologias de back-end mencionadas sendo usadas dessa maneira.

O PHP é um exemplo engraçado, pois pode ser (de uma maneira bastante feia, devo acrescentar) visto como uma linguagem tudo-em-um no que diz respeito a muitos projetos da web. Você pode executar suas tarefas tradicionais de " back-end " - como operações de arquivo e banco de dados, além de criar marcações de " front-end ".

Isso pode claramente levar a uma bagunça de espaguete, onde não há uma separação real de preocupação, por isso realmente deve ser desaprovada em minha mente. Por um ótimo exemplo, se você procurar a fonte do wordpress, pode se perder - e esse é um projeto em que culpo a linguagem, a organização da base de código é realmente muito boa.

Isso pode ser remediado, de certa forma, usando um " mecanismo de modelo " (como o Smarty )) - mas ainda é o PHP que está construindo o "front-end", além de fornecer a funcionalidade "back-end". Esta foi uma decisão intencional por trás do design do PHP, no entanto, é afinal um " processador de hipertexto "!

Portanto, o PHP pode se encaixar facilmente nos usos " front-end " e " back-end ", o que deve esclarecer seu exemplo. Portanto, você provavelmente está certo de que o PHP processará e criará toda a marcação para um front-end, mas fará solicitações em outro lugar para reunir os dados necessários - provavelmente um serviço gravado em uma das linguagens mencionadas acima .

Pessoalmente, acho que toda a terminologia "back-end" e "front-end" está um pouco ... desatualizada. Prefiro que as coisas se refiram apenas ao lado do cliente e do servidor; então não há ambiguidade real. *

Recentemente, vi uma especificação de cliente que exigia um sistema de back-end escrito em node.js e ferramentas associadas, mas queria a compilação de front-end usando uma estrutura PHP (Laravel). Isso vem com muitos custos associados e, em minha opinião, não é uma solução elegante e pode causar alguns problemas na linha.

Pessoalmente, esse tipo de configuração parece que alguém transferiu o PHP desnecessariamente para outra pilha - o que significa que são necessários mais recursos do que realmente são necessários, a equipe de manutenção precisa de exposição a uma gama mais ampla de tecnologias e há mais pontos de falha.

Além disso, também acho que existem muito poucos cenários que justificam esse tipo de pilha intermediária; a maioria das linguagens / estruturas de back-end é perfeitamente capaz de gerar a marcação necessária para o front-end. Embora eu deva ser corrigido lá.

* Porém, para deixar sua pergunta de cabeça para baixo. E os sistemas de back-end criados com Javascript? (node.js;))

Editar:

Depois de ler um comentário do @itsbruce, decidi esclarecer o que quero dizer com a ambiguidade da minha terminologia "front-end" / "back-end".

Tradicionalmente, essa terminologia teria sido boa, os aplicativos da Web da arquitetura eram muito mais simples - e ouso dizer, muito mais burros. É muito mais limpo em minha mente dizer "Lado do Servidor" e "Lado do Cliente", e isso está ficando mais claro à medida que a tendência atual de empurrar mais do processamento e da lógica para o cliente está se tornando comum.

Está se tornando aceitável fazer uma quantidade razoável de processamento de dados no lado do cliente (basta olhar para algumas das estruturas de javascript atualmente em alta), mas isso é realmente um front-end? O usuário não vê, vê os resultados - e por critérios tradicionais que geralmente seriam vistos como "back-end"; mas isso está ocorrendo no navegador agora ..

Da mesma forma, e incrivelmente relevante para essa questão, construir a marcação no PHP é realmente uma tarefa de front-end? Duvido, uma rápida navegação nos quadros de tarefas mostra poucas posições de desenvolvedor front-end que esperam experiência ou conhecimento em PHP; ainda assim, a intuição sugere que a marcação para a interface é inerentemente front-end.

O próprio fato de essa pergunta existir serve como um exemplo de como " front-end " e " back-end " são inerentemente ambíguos e continuarão sendo.

Ao se referir a tarefas como "do lado do servidor" ou "do lado do cliente" que perdem a ambiguidade, você sabe onde o código está sendo executado e quais idiomas serão usados. Se você disse " front-end " no exemplo que o OP forneceu, duvido que muitas pessoas digam " Ah, então PHP no servidor, certo? ".


3
Não votei em contrário, mas sua resposta é quase tão difícil de ler quanto a pergunta e ela realmente não resolve a confusão sobre os termos (se é que isso piora). Mais importante, há simplesmente é sem ambiguidade entre "front-end v back-end." E "do lado do cliente v do lado do servidor."; eles descrevem relacionamentos diferentes e distintos. Você também pode dizer "Prefiro que paremos de pensar em cores e formas; é ambíguo que as coisas possam ser verdes ou azuis e redondas ou quadradas e algumas coisas sejam verdes e quadradas".
itsbruce

Doh, não tive tempo suficiente para fazer a revisão, pois precisava voltar ao trabalho. Felicidades pelo comentário, porém, me deram um aviso para editar. Porém, eu mantenho meus pensamentos em relação à terminologia, mas a expandirei um pouco. Ta.
Fergus Em Londres

não necessariamente - considero que um idioma de servidor da Web faz parte do cliente (considerando a frequência com que os servidores da Web são hackeados hoje em dia deve ser considerado comprometido desde o primeiro dia), portanto, é necessário distinguir os idiomas do servidor que fazem parte da apresentação a partir de idiomas do lado do servidor que fornecem serviços da camada de aplicativos. Portanto, o PHP pode ser considerado uma linguagem "front-end, do lado do servidor".
gbjbaanb 27/09/2013
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.