Ist der Begriff "Front-End" synonym mit "clientseitig"? Wenn ja, ist das immer der Fall?

18

Als relativ neuer (autodidaktischer) Webentwickler habe ich die Begriffe Front-End , Client-Side , Back-End und Server-Side ziemlich oft gehört. Front-End und Back-End waren für mich immer gleichbedeutend mit Client-Seite bzw. Server-Seite.

Als ich jedoch anfing, mit MVC-Frameworks wie CodeIgniter zu arbeiten, stieß ich auf einige Front-End-Instanzen, die sich auf alles beziehen, was der Endbenutzer sieht (einschließlich serverseitigem Code), während das Back-End auf alles Bezug genommen hat Der Endbenutzer sieht nicht (einschließlich CMS). Client-Seite und Server-Seite haben für mich eine viel konkretere Bedeutung. Sie haben eine sehr deutliche Linie, die sie trennt. Front-End und Back-End hingegen nicht.

In einem Gespräch, das ich mit einem anderen Webentwickler geführt habe, hat er CodeIgniter (in seiner Gesamtheit) als Front-End bezeichnet, und das warf mich für eine Schleife. Ich war mir nicht sicher, ob ich ihn korrigieren und sagen sollte, dass CodeIgniter mein Back-End war oder ob meine Definitionen der beiden Begriffe völlig falsch waren.

Die Suche nach Definitionen für Front- und Back-End hat mich in mancher Hinsicht ein bisschen mehr verwirrt, obwohl sie ein paar Dinge klargestellt haben. Ich möchte nur wissen, wo die Linien zwischen diesen vier Begriffen gezogen werden und wie sie im Kontext der Webentwicklung (speziell auf einem LAMP-Stapel) zusammengefügt werden.

DC_
quelle
1
Ich habe mit einem Typen gearbeitet, der "Vorderseite" und "Rückseite" als "Vorderseite" und "Rückseite" bezeichnet. Ob er "richtig" war oder nicht, ist eine andere Frage.
User16764
Wir sollten stattdessen das Wort "posterior" verwenden. Scherz. Ich wünschte, es gäbe einen anderen Ausdruck dafür. Synonyme für "Back-End" sind nicht ermutigend.
Erik Aronesty

Antworten:

16

Ich glaube nicht, dass es eine formale Definition für diese Begriffe gibt, und wie Sie bemerkt haben, gibt es in einigen Fällen Überschneidungen.

front-endund client-sideüberlappen.
server-sideund back-endauch überlappen.

Wenn ich Haare spalten würde, würde ich diese groben Grenzen bieten:

  • client-sideist eine Anwendung, die auf dem Computer des Benutzers ausgeführt wird. Es kann sich um eine eigenständige Anwendung handeln (häufiger) oder um eine auf einem Webbrowser basierende Benutzeroberfläche (weniger wahrscheinlich).
  • front-endist auch dem Endbenutzer zugewandt und wird im Allgemeinen in einer Webbrowser-basierten Oberfläche ausgeführt. Ich habe noch nie von dicken Kunden gehört, die als front-end.
  • back-endbezieht sich auf Prozesse und Dienste, die entweder auf einem anderen Server oder im Hintergrund des Benutzercomputers ausgeführt werden. Meist bezieht es sich auf Prozesse, die sich nicht auf dem Computer des Endbenutzers befinden. Wie Sie bereits erwähnt haben, ist der Schlüssel jedoch, dass der Endbenutzer die ausgeführten Prozesse nicht unbedingt kennt.
  • server-sideist eine Erweiterung von back-end, verstärkt aber ausdrücklich die Tatsache, dass die Prozesse an einem anderen Ort ausgeführt werden und nicht auf den Computern der Endbenutzer.

Als Beispiel und um die Verwirrung zwischen den Begriffen hervorzuheben, verwende ich Minecraft als Beispiel.

Minecraft hat eine

  • client-side Anwendung, wenn Sie die JAR-Dateien lokal mit Ihrer eigenen JVM ausführen.
  • front-end Wenn Sie die Client-Anwendung in Ihrem Webbrowser ausführen möchten
  • back-end Prozess, der lokal auf Ihrem Computer ausgeführt werden kann, wenn Sie sich im Standalone-Modus befinden
  • server-side Vorgang, wenn Sie sich bei einem Server anmelden, auf dem sich die Minecraft-Serveranwendung befindet.

Wenn Sie sich in einige Statistiken von Minecraft vertiefen, werden Sie feststellen, dass diese lediglich eine clientund eine serverKomponente des Spiels bezeichnen. Es ist ihnen nicht unbedingt wichtig, wo diese Komponenten ausgeführt werden.


So beantworten Sie Ihre Fragen direkt:

Ist der Begriff "Front-End" synonym mit "clientseitig"?

Irgendwie, aber nicht wirklich. Es gibt eine Nuance zwischen den Begriffen, wenn Sie Dinge außerhalb der webbasierten Welt diskutieren. Wenn Sie sich ausschließlich in der webbasierten Welt befinden, dann sind sie auch funktionell.

Wenn ja, ist das immer der Fall?

In der Webwelt würde ich ja sagen. In anderen Bereichen würde ich Nein sagen, wie in den groben Definitionen, die ich angeboten habe, erläutert.


quelle
Das ist ungefähr das, was ich dachte. Danke, dass du mir geholfen hast, das in meinem Kopf zu klären.
DC_
2
Unter Backend wird häufig der clientseitige Verwaltungsteil einer Website / Anwendung verstanden.
Florian Margaine
16

Serverseitig läuft auf dem Server. Clientseitig wird auf dem Client ausgeführt. Das Back-End knirscht mit Daten. Das Front-End zeigt es an.

Schauen Sie sich diese Webseite an. Das Abrufen aller Kommentare aus der Datenbank ist serverseitige Back-End-Arbeit. Das Layout dieser Daten in einer Vorlage ist eine serverseitige Front-End-Arbeit. Die AJAX-Abstimmungs-Widgets und das ausgefallene Texteingabefeld sind clientseitig.

Sean McSomething
quelle
3
+1 für den Hinweis auf die Orthogonalität zwischen Front-End / Back-End-Konzept und Client-Side / Server-Side-Konzept
Francesco Feltrinelli
1

Ich finde es im Allgemeinen weniger vage, clientseitig und serverseitig die Entwicklung / Entwickler zu beschreiben. Der Teil der Clientseite, auf dem Daten jongliert / formatiert werden, kann als Back-End-Komponente betrachtet werden. Auf der anderen Seite gibt es all das Templating, das im Backend vorkommt, was "für das Frontend" dazu führt, dass Leute über sie als Frontend-Java- oder C # -Entwicklung sprechen. Es ist selten, aber ich habe es in Stellenbeschreibungen gesehen.

Aber ja, im Allgemeinen ist das Front-End der Teil, an dem die Interaktion stattfindet. Das Backend ist der Teil, in dem all diese Interaktion in etwas Nützliches verwandelt wird.

Erik Reppen
quelle
0

Diese Frage ist etwas älter, aber lassen Sie mich meine 2c hinzufügen:

In meiner eigenen Webentwicklung habe ich den Begriff "Frontend" verwendet, der Code - oder andere Ressourcen - bedeutet, die für eine Weile im Browser verarbeitet werden. Jetzt verwende ich den Begriff "Client", weil es besonders verwirrend sein könnte. bei Webanwendungen. (Einseitige Apps)

Ganz einfach, weil es auf der Backend-Seite auch ein "Frontend" gibt, dh im Allgemeinen den Teil der Anwendung, der für die Ausgabe (an den Browser) verantwortlich ist. "Frontend" kann also zwei verschiedene Dinge bedeuten. Der Begriff "Client" beschreibt jedoch deutlicher etwas, das mit dem tatsächlichen Client (in diesem Fall dem Browser) zusammenhängt.

PS: Naja, vielleicht sollte ich jetzt auch meinen Spitznamen in "client_dev" ändern;)

frontend_dev
quelle