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.
Antworten:
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-end
undclient-side
überlappen.server-side
undback-end
auch überlappen.Wenn ich Haare spalten würde, würde ich diese groben Grenzen bieten:
client-side
ist 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-end
ist 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 alsfront-end
.back-end
bezieht 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-side
ist eine Erweiterung vonback-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öchtenback-end
Prozess, der lokal auf Ihrem Computer ausgeführt werden kann, wenn Sie sich im Standalone-Modus befindenserver-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
client
und eineserver
Komponente des Spiels bezeichnen. Es ist ihnen nicht unbedingt wichtig, wo diese Komponenten ausgeführt werden.So beantworten Sie Ihre Fragen direkt:
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.
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
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.
quelle
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.
quelle
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;)
quelle