Le terme «frontal» est-il synonyme de «côté client»? Si oui, est-ce toujours le cas?

18

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).

DC_
la source
1
J'ai travaillé avec un gars qui a utilisé "front end" et "back end" pour signifier "face avant" et "face arrière". Qu'il soit ou non "correct" est une autre question.
user16764
Nous devrions plutôt utiliser le mot «postérieur». Blague. Je souhaite qu'il y ait une autre phrase pour cela. Les synonymes de "back end" ne sont pas encourageants.
Erik Aronesty

Réponses:

17

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-endet se client-sidechevauchent.
server-sideet back-endse chevauchent également.

Si je divisais les cheveux, je proposerais ces limites approximatives:

  • client-sideest 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-endfait é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és front-end.
  • back-endfait 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-sideest une extension de back-endmais 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 Web
  • back-end processus qui peut s'exécuter localement sur votre machine si vous êtes en mode autonome
  • server-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 clientet un servercomposant du jeu; ils ne se soucient pas nécessairement de l'emplacement de ces composants.


Pour répondre directement à vos questions:

Le terme «frontal» est-il synonyme de «côté client»?

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é.

Si oui, est-ce toujours le cas?

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'est à peu près ce que je pensais. Merci de m'avoir aidé à clarifier cela dans ma tête.
DC_
2
Le backend est souvent utilisé pour désigner la partie administration côté client d'un site Web / d'une application.
Florian Margaine
19

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.

Sean McSomething
la source
4
+1 pour avoir souligné l'orthogonalité entre le concept frontal / principal et le concept côté client / côté serveur
Francesco Feltrinelli
1

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.

Erik Reppen
la source
0

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;)

frontend_dev
la source
0

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).

entrez la description de l'image ici

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.

  • Les développeurs frontaux doivent connaître le HTML, le CSS, le DOM et les capacités générales du navigateur (par exemple, caniuse ). En règle générale, ils connaissent certains jQuery ou React. Bien qu'il soit backend selon ma définition, je m'attendrais à ce que les développeurs frontend connaissent le stockage côté client
  • Les développeurs back-end devraient connaître les serveurs Web tels que nginx, gunicorn, Apache ou node.js. Ils doivent connaître au moins une base de données SQL (Postgres, MariaDB / MySQL, ...), les magasins de valeurs-clés (Redis), le développement d'API (REST et GraphQL). LAMP était une pile typique il y a quelque temps. Je ne m'attendrais pas à ce qu'un développeur principal sache quoi que ce soit sur les navigateurs!

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:

  • Les concepteurs d'interface utilisateur rédigent l'expérience utilisateur
  • Le développeur frontal s'assure qu'il ressemble à ce qui est attendu (en construisant la vraie chose à partir du brouillon)

Outils:

  • Les concepteurs d'interface utilisateur utilisent principalement Adobe Photoshop / Illustrator / Sketch / Balsamiq / Invision.
  • Les développeurs Front End utilisent React, Vue, Angular

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.

Martin Thoma
la source