In den letzten Monaten habe ich eine große Begeisterung für clientseitiges Scripting in der Webentwicklung festgestellt. Während serverseitige Technologien ausgereift, stabil und von Backend-Entwicklern gut akzeptiert sind, sind clientseitige Technologien unausgereift (dh im Vergleich zu großen serverseitigen Frameworks) und werden von vielen langjährigen Entwicklern nicht gemocht. Trotzdem macht heutzutage jeder eine clientseitige Entwicklung. Ich persönlich erwarte, dass diese großen serverseitigen Frameworks in etwa zwei bis fünf Jahren verschwinden und den aktuellen Trend beobachten.
Warum ist das so? Wie könnte die neue und "diffuse" clientseitige Entwicklung in HTML5 / JS großen und gut durchdachten serverseitigen Lösungen überlegen sein?
quelle
Antworten:
Das ist wahr:
Es ist jedoch nicht auf die Clientseite beschränkt, sondern eine vollständige Stapelbewegung.
Ich weiß, dass dies überraschend sein kann. Bitte, hör mir zu.
Zunächst einmal sind beide gut durchdacht.
Zweitens, weil es besser ist.
Gute Frage.
Aber "besser" ist subjektiv, daher lautet die Antwort auf Ihre Frage: Was ist konkret besser?
Besuchen Sie die Frage erneut:
Es ist Flexibilität.
Scheint keine große Sache zu sein. Macht es? Flexibilität.
Wartbarkeit. Erweiterbarkeit. Skalierbarkeit. Modularität. Benutzerfreundlichkeit. UX.
Und es ist schneller zu implementieren. Das ist die Realität. Schneller und besser.
Smartphones waren die schnellste Akzeptanz in den Massenmedien seit dem Fernsehen in den 1950er Jahren. Jetzt haben wir nicht nur Smartphones, sondern auch Tablets.
Bereits in der Entwicklung bei Mozilla und Windows das Betriebssystem, das auf zukünftigen Geräten in ihren Märkten laufen wird -> HTML / JS.
Viele Lösungen und Innovationen bleiben bestehen.
Aufgrund der Flexibilität entsteht ein vollständiger Stapel von JS.
Ich hoffe das hilft.
quelle
Diese Geschichte hatte immer zwei Seiten; Sowohl serverseitiger als auch clientseitiger Code haben Vor- und Nachteile.
Zu den Vorteilen von clientseitigem Scripting gehören:
Aber serverseitiges Skript hat auch viele Vorteile:
Für hochdynamische Webanwendungen war der clientorientierte Ansatz schon immer eine beliebte Wahl, da nur so eine anständige reaktionsschnelle Desktop-ähnliche Benutzererfahrung erzielt werden kann: Ohne clientseitiges Scripting erfordert jede Aktion des Benutzers eine Rundung. Auslösung, was eine Verzögerung von mindestens einer halben Sekunde bedeutet, normalerweise mehr. Für eine Informationsseite, bei der es sich im Grunde nur um eine Reihe statischer Seiten handelt, die aus einer Datenbank (z. B. Wikipedia) bereitgestellt werden, ist der Vorteil jedoch gering, während die Vorteile von serverseitigem Scripting immer noch überwältigend sind.
Der beobachtete Hype beruht auf einer Kombination von zwei jüngsten Entwicklungen:
Tatsächlich hat sich nichts daran geändert, wozu die server- und clientzentrierten Ansätze gut sind. Was sich geändert hat, ist, dass die Kundenorientierung jetzt einfacher und billiger durchzuführen ist und eine bessere Leistung als vor einigen Jahren bietet. Dies macht sie zu einer praktikablen Wahl für viel mehr Anwendungen als früher.
quelle
Die Serverseite wird immer verfügbar sein. Sie können nicht für alles auf der Client-Seite sitzen. Beispielsweise möchten Sie kein Backbone.js MVC-Design für Ihren Mikrocontroller verwenden, das Ihnen Parameter in Echtzeit von einem Fertigungskran sendet.
Glaube dem Hype nicht.
quelle
Ich habe 2009 von einem serverseitigen PHP-Framework zu einer clientseitigen ExtJS-Lösung gewechselt, die an serverseitige Webdienste gebunden ist.
Gründe für die Migration waren für mich:
Wenn Sie zu Webdiensten wechseln, überprüfen Sie die Eingabe an der Grenze des Webdienstes und haben eine genauere Kontrolle über die E / A Ihres Servers. Es gibt keine serverseitige UI-Schicht, die Ihre Sicherheitsarchitektur durcheinander bringt.
Die Architektur ändert sich, sodass Datenabrufe seltener auftreten und Daten lokal zwischengespeichert werden können, wobei für das UI-Rendering überhaupt kein Roundtrip erforderlich ist. Roundtrips beeinträchtigen die Leistung von Web-Apps.
Die Benutzeroberflächenebene kann vollständig auf einem CDN gehostet werden. Ich habe sogar Offline-Webanwendungen erstellt, indem ich den UI-Code in den HTML5-App-Cache verschoben habe.
Dies bedeutet weniger Entwicklung, Qualitätssicherung, Dokumentation, ...
Aber machen Sie keinen Fehler, was jetzt passiert, ist ein Hype. Es wird vorbei sein und viele Web-Apps werden wieder eine serverseitige UI-Architektur verwenden.
quelle
Ein weiterer Faktor, der die Begeisterung für clientseitige Lösungen steigert, ist das Wachstum mobiler Apps. Wenn Sie eine Website erstellen, die stark auf clientseitigem JavaScript und AJAX basiert, und auch native iOS- und Android-Apps erstellen, besteht eine gute Chance, dass alle drei dieselben REST-Services verwenden können, um alle ihre Daten hin und her zu übertragen .
quelle
Erstens sieht der Benutzer nicht (und manchmal ist es ihm sogar egal), was nicht der Server ist. Unabhängig davon, wie gut der serverseitige Code geschrieben ist, werden die Benutzer die Anwendung nicht schätzen, wenn der Client-Teil nicht gut ausgeführt wird. Manchmal ist sogar die nette Benutzeroberfläche wichtiger als die Funktionalität.
Ein großes und leistungsfähiges Server-Hosting ist ziemlich teuer. Es ist viel billiger, einen Teil der Logik (außer der Validierung) auf der Clientseite zu implementieren. Sie könnten also ein kleineres (daher billigeres) Server-Hosting verwenden, da es nicht so stark geladen wäre.
Dies ist der Grund, warum clientseitige Technologien trotz der Instabilität immer beliebter werden. Außerdem werden JS und HTML / CSS von (fast) allen modernen Browsern unterstützt.
Diese beiden Teile von Anwendungen können nicht getrennt existieren. Und das Internet scheint in naher Zukunft nirgendwo zu verschwinden.
Ich denke nicht, dass das
big server-side frameworks
wahrscheinlich auch verschwinden wird. Es wird immer Unternehmen geben, die sich diese leisten können und ihre bedeutenden Vorteile nutzen.quelle
Die clientseitige Webentwicklung ist stark an Webbrowser gekoppelt und ändert sich im Laufe der Zeit. Die Lösung, die Sie jetzt bereitstellen, funktioniert möglicherweise in einigen Monaten nicht mehr, da sich die Seitenrendering-Engines von Webbrowsern erheblich geändert haben. Einige Browser sind / waren nicht mit Standards kompatibel und erforderten daher von den Entwicklern noch mehr zusätzlichen Aufwand, um das erwartete Ergebnis zu erzielen.
Es gibt einige Lösungen, die versuchen, dieses Problem zu beheben. Wenn Sie beispielsweise jquery verwenden, können Sie sicher sein, dass Ihr Skript in den von dieser speziellen jquery-Bibliothek unterstützten Browsern funktioniert. Es liegt jedoch nur an den Autoren, Ihnen Kompatibilität mit einigen / den meisten / allen Browsern zu bieten. Die Frage ist, welches Team Sie besser unterstützt. Wird es ein Motools-Team, ein JQuery-Team oder ein anderes Team sein? Wenn sie einen bestimmten Webbrowser nicht unterstützen, funktioniert Ihr Projekt möglicherweise nicht in diesem Browser.
Die Aufregung, die Sie zu haben scheinen, gibt es schon lange. Ich habe es gesehen, als Shockwave und sein Nachfolger Flash vorgestellt wurden. Es gab ein "großes Comeback" der umfangreichen Benutzeroberflächen, als komplexe js-Bibliotheken ausgeliefert wurden, zuerst mit Motools, dann mit jquery (ich habe angefangen, sie in dieser Reihenfolge zu verwenden). Es gab Flex und JavaFX. Aber keiner von ihnen kann einen großen Marktanteil erreichen. Einige erfordern Plugins, die den Endbenutzer mit der Zeit häufig Sicherheitslücken aussetzen, andere funktionieren möglicherweise auf der Clientseite aufgrund einiger benutzerdefinierter Einstellungen nicht (z. B. deaktiviertes JavaScript im Browser des Clients).
Auf der anderen Seite wird die serverseitige Lösung normalerweise nur einmal geschrieben. Sie müssen sich keine Sorgen machen, dass alles fehlschlägt und neu geschrieben werden muss, sobald neues Firefox / Chrome / IE / Opera ausgeliefert wird. Sie müssen sich auch keine Sorgen machen, dass der Client versucht, Ihre App zu manipulieren und / oder die Daten zu beschädigen.
quelle
Stimmen Sie absolut mit Ihren Gefühlen überein. Ich glaube auch, dass über das, was Sie sagen, ein dramatischer Rückgang des REST und ein massiver Anstieg der Websockets hinausgehen werden, vor allem, wenn Websites auf ihre Server zurück kommunizieren. Vert.x, Node.js usw. Die gesamte Serverseite sowie die Clientseite wechseln zur ereignisgesteuerten Programmierung. Java EE, PHP, Rails usw. müssen sich alle anpassen, sonst verlieren sie sehr schnell.
quelle