En tant que développeur Web relativement nouveau (autodidacte), j'ai souvent entendu les termes front-end , côté client , back-end et côté serveur . Pour moi, front-end et back-end étaient toujours synonymes de côté client et côté serveur, respectivement.
Cependant, alors que j'ai commencé à travailler avec des frameworks MVC comme CodeIgniter, je suis tombé sur quelques exemples de front-end faisant référence à tout ce que l'utilisateur final voit (y compris le code côté serveur), tandis que le back-end fait référence à tout l'utilisateur final ne voit pas (y compris les CMS). Côté client et côté serveur, pour moi, leur signification est beaucoup plus concrète; ils ont une ligne très distincte les séparant. En revanche, le front-end et le back-end ne le font pas.
Dans une conversation dont je me souviens avoir eu avec un autre développeur Web, il a fait référence à CodeIgniter (dans son intégralité) comme un front-end, et cela m'a jeté pour une boucle. Je ne savais pas s'il fallait le corriger et dire que CodeIgniter était mon back-end, ou si mes définitions des deux termes étaient complètement fausses.
La recherche de définitions du front et du back-end m'a un peu plus troublé à certains égards, bien qu'ils aient clarifié certaines choses. Je voudrais juste savoir où les lignes sont tracées entre ces quatre termes, et comment elles se rejoignent dans le contexte du développement Web (en particulier sur une pile LAMP).
Réponses:
Je ne pense pas qu'il existe une définition officielle de ces termes et, comme vous l'avez indiqué, il y a chevauchement dans certains cas.
front-end
et seclient-side
chevauchent.server-side
etback-end
se chevauchent également.Si je divisais les cheveux, je proposerais ces limites approximatives:
client-side
est une application qui s'exécute sur l'ordinateur des utilisateurs. Il peut s'agir d'une application autonome (plus souvent) ou d'une référence à une interface basée sur un navigateur Web (moins probable).front-end
fait également face à l'utilisateur final et s'exécute généralement dans une interface basée sur un navigateur Web. Je n'ai pas entendu parler de clients épais appelésfront-end
.back-end
fait référence aux processus et services qui s'exécutent sur un autre serveur ou en arrière-plan de l'ordinateur des utilisateurs. Plus souvent qu'autrement, il se réfère à des processus qui ne sont pas sur l'ordinateur des utilisateurs finaux. Mais la clé, comme vous l'avez mentionné, est que l'utilisateur final n'est pas nécessairement au courant des processus en cours.server-side
est une extension deback-end
mais renforce explicitement le fait que les processus s'exécutent ailleurs et non sur les ordinateurs des utilisateurs finaux.À titre d'exemple, et pour souligner la confusion entre les termes, je vais utiliser Minecraft comme exemple.
Minecraft a un
client-side
lorsque vous exécutez les fichiers jar localement avec votre propre machine virtuelle Java.front-end
si vous choisissez d'exécuter l'application cliente dans votre navigateur Webback-end
processus qui peut s'exécuter localement sur votre machine si vous êtes en mode autonomeserver-side
si vous choisissez de vous connecter à un serveur hébergeant l'application serveur Minecraft.Si vous fouillez dans certaines statistiques de Minecraft, vous verrez qu'elles désignent simplement un
client
et unserver
composant du jeu; ils ne se soucient pas nécessairement de l'emplacement de ces composants.Pour répondre directement à vos questions:
Un peu, mais pas vraiment. Il y a une nuance entre les termes si vous discutez de choses en dehors du monde Web. Si vous êtes strictement dans le monde du Web, alors oui, ils sont également synonymes de fonctionnalité.
Dans le monde du Web, je dirais que oui. Dans d'autres domaines, je dirais non, comme expliqué dans les définitions approximatives que j'ai proposées.
la source
Côté serveur s'exécute sur le serveur. Côté client s'exécute sur le client. Le back-end crunch des données. Le front-end l'affiche.
Regardez cette page Web. Extraire tous les commentaires de la base de données est un travail côté serveur, côté serveur. La disposition de ces données dans un modèle est un travail frontal côté serveur. Les widgets de vote AJAX et la zone de saisie de texte fantaisie sont frontaux côté client.
la source
Je trouve généralement que l'utilisation côté client et côté serveur pour décrire le développement / les développeurs est moins vague. La partie du côté client où nous jonglons / mettons en forme des données peut être considérée comme un composant principal. D'un autre côté, il y a tous les modèles qui ont tendance à se produire sur le back-end, ce qui étant "pour le front-end" a tendance à faire en sorte que les gens en parlent comme du développement frontal Java ou C #. C'est rare, mais je l'ai vu dans les descriptions de travail.
Mais oui, de manière générale, le front end est la partie où l'interaction se produit. Le back-end est la partie où toute cette interaction se transforme en quelque chose d'utile.
la source
Cette question est un peu plus ancienne mais permettez-moi d'ajouter mon 2c:
Dans mon propre développement Web, j'ai utilisé le terme "frontend" signifiant code - ou d'autres ressources - qui sont traitées dans le navigateur pendant un certain temps. Maintenant, j'utilise le terme «client», car cela pourrait être source de confusion, en particulier. lors de la création d'applications Web. (Applications à page unique)
Tout simplement parce que du côté du backend, il y a aussi un "frontend", ce qui signifie en général la partie de l'application qui est responsable de la sortie (vers le navigateur). Donc, "frontend" peut en fait signifier deux choses différentes. Le terme «client» est cependant à mon sens décrivant plus clairement quelque chose qui est lié au client réel (dans ce cas, le navigateur).
PS: Eh bien, je devrais peut-être aussi changer mon surnom en "client_dev" maintenant;)
la source
Le côté client dans une application Web est sous le contrôle de l'utilisateur / client, le côté serveur est sous le contrôle du développeur. C'est une des raisons pour lesquelles on devrait faire la validation des données sur le serveur.
Les termes front end et back end sont souvent utilisés également pour le côté client et le côté serveur et dans de nombreux cas, c'est correct. Cependant, il existe également des contre-exemples importants. Pour moi , le frontal est tout ce qui montre quelque chose à l'utilisateur.
Dans l'image suivante, vous pouvez voir les technologies / concepts typiques et comment ils s'intègrent dans les quadrants (frontal, arrière) / (côté client, côté serveur).
Développeurs Front End et Back End
Développeur Frontend et Backend sont deux rôles très courants. La ligne devient un peu floue lorsque vous avez des choses comme React qui peut être rendu côté serveur et Flask qui inclut le moteur de template jinja .
Et même si je mettrais des technologies comme la base de données Web SQL et l' API de base de données indexée dans le quadrant "backend côté client", le rôle qui en est généralement informé est le rôle de développeur frontal.
UI Designer vs Front End Developer
Deux autres rôles sont le concepteur d'interface utilisateur et le développeur frontend. Donc, une différence est que l'un est concepteur et l'autre développeur.
Objectif:
Outils:
API: REST et GraphQL
Les API sont fournies par les équipes back-end et sont utilisées par les frontaux pour remplir l'application avec les données. Le backend est le stockage persistant sur les appareils, le frontend est la couche de présentation. L'API est le canal de communication pour les deux.
la source