Eine neue Ära der Webentwicklung oder "alles ist schon da"

Sie werden ein Problem niemals lösen, wenn Sie genauso denken wie die, die es geschaffen haben.

Albert Einstein

Der britische Wissenschaftler Tim Berners-Lee schuf 1989 das Dokumentenaustauschsystem Inquire, das zum Prototyp des globalen Internets wurde. Wenn ihm eine Reihe von Spezifikationen vorgelegt wurden, ist eine davon die Spezifikation der HTML- Auszeichnungssprache. So wurde die Ära der Webentwicklung geboren. Im Moment hat diese Spezifikation viele Änderungen erfahren, aber in Wirklichkeit hat sich nichts globales geändert. In diesem Artikel werde ich versuchen, über die Mängel dieser Technologie und die Redundanz der Funktionalität zu spekulieren.

Bild

Ein Dokument ist eine Ressource ...


Das von Tim Berners-Lee vorgeschlagene Konzept war einfach, es gibt ein Protokoll, eine Adresse und ein Dokument. Alles scheint logisch zu sein und Sie können sicher das richtige Dokument an eine bestimmte Adresse senden, und es gibt eine Zentralisierung für den allgemeinen Gebrauch, und alles scheint in Ordnung zu sein.

Und dann kam der Tag, an dem das Internet weltweit verfügbar wurde. Ich erinnere mich, wie ich auf eine Informatikstunde gewartet habe, um schöne Desktop-Hintergründe herunterzuladen oder etwas über Spiele mit der knarrenden Einwahl zu lesen.

Dann schlaflose Nächte und riesige Rechnungen über mein Haustelefon an meine Eltern. Ich danke ihnen, dass sie mir nachsichtig waren, als sie diese Rechnungen erhielten.

Und schließlich die Ära der völligen Freiheit, als viele urheberrechtlich geschützte und nicht urheberrechtlich geschützte Inhalte ins Internet "flogen". Niemand dachte damals, dass für Inhalte im Internet gezahlt werden müsste, aber das denken übrigens auch jetzt noch viele Menschen. Der Konsum von Inhalten wuchs, neue Dienste, Ressourcen, Portale und Suchplattformen tauchten auf. Dementsprechend war es notwendig, eine komfortable Benutzeroberfläche für die Interaktion mit all dem zu schaffen.

Bild

1995 arbeitete ein Entwicklerteam von Netscape Communications an einer neuen Programmiersprache, die es ermöglicht, direkt in den Browsern der Benutzer ausgeführt zu werden und so dem Inhalt der Seite ein interaktives Verhalten hinzuzufügen. Ursprünglich hieß diese Sprache Mocha, dann wurde vorgeschlagen, sie in LiveScript umzubenennen.

Ein Jahr später erscheint CSS und fügt noch mehr visuelle Funktionen und Annehmlichkeiten hinzu. Und jetzt, vom kurzen historischen und informativen Teil, gehe ich zu dem Thema über, das ich diskutieren wollte.

Wir werden das Fahrrad für eine lange Zeit benutzen, oder es ist Zeit, nach Tesla zu transferieren ...


Also, was ist meine Beschwerde. Jeder Webentwickler ist mit einer Reihe von identischen und routinemäßigen Vorgängen von Projekt zu Projekt bei der Entwicklung von Software konfrontiert, die im Internet funktioniert. Ein Unternehmen, das seine Arbeit digitalisiert, sieht sich einem wettbewerbsintensiven und manchmal aggressiven Markt gegenüber. Was ich meine, werde ich erklären.

Zuerst müssen Sie darauf achten, in welcher Sprache die Anwendungslogik geschrieben werden soll. Hier sagen Sie, was von den Aufgaben der Anwendung abhängt, und Sie werden Recht haben. Aber in Wirklichkeit passiert das nicht, normalerweise nehmen sie, was billiges Hosting unterstützt und wo es billige Entwickler gibt. Und natürlich die Begriffe „gestern“ für die Erfüllung der Entwicklungsaufgaben, wo ohne. Als Ergebnis haben wir eine Art CMS in PHP geschrieben und 2-4 Entwickler auf der Fernbedienung.

Während das Geschäft wächst und die Anforderungen an die Automatisierung wachsen, wächst die Komplexität der Aufgabenimplementierungen, aber normalerweise denkt das Geschäft nicht darüber nach, was und wie technisch es unter der Haube sein wird. Infolgedessen geht das Geschäft natürlich nach Erreichen eines bestimmten Volumens implementierter Aufgaben an den Systemintegrator und kauft ein Produkt im Wert von mehreren Millionen US-Dollar von Markthaien wie IBM, Microsoft, Oracle usw. Mit "Geschäft" meine ich jeden Kunden von Weblösungen.

Es geht aber nicht darum, worüber man besser schreiben kann, sondern darum, ob es für Sie, liebe Webentwickler, einen „goldenen Schnitt“ für eine bequeme, schnelle und qualitativ hochwertige Entwicklung gibt. Ich habe lange über diese Aufgabe nachgedacht und davon geträumt, ein solches Werkzeug für die Entwicklung in meine Hände zu bekommen. Das hat mich dazu veranlasst, mein CMS zu schreiben. Ich habe hier schon früher darüber geschrieben.

Die Ideologie war so, und ich habe mir zum Ziel gesetzt, so spezielle HTML-Tags zu erstellen, dass ich problemlos in natives HTML schreiben und iterative Daten vom Backend empfangen kann, ohne JavaScript zu schreiben, die Logik der Backend-Komponenten zu analysieren und ohne Seiten neu zu laden. Es klingt irgendwie seltsam und inwieweit Angular2 es tut, aber STOP, die Aufgabe ist nicht, das Frontend aus dem Wort "vollständig", nur dem guten alten HTML wie 1989 und Ihren Tags zu schreiben.

Nun, ich war aufgeregt, es gibt eine gewisse Annahme, sagen wir, wir haben eine Website mit allen Seiten und "Whistle-Fake" darauf, aber nur HTML, JavaScript, CSS. Das heißt, der Layoutdesigner und der Designer in einem Paar haben eine solche Vorlage für uns zusammengestellt. Unsere Aufgabe besteht nur darin, diese Vorlage auf die Daten zu ziehen.

Da wurde in der zweiten Version mein Produkt implementiert. Erstens, von dem, was ich dieses Wunder gesammelt habe:

  • Spring Boot / Daten / Rest
  • Mongodb

Das Folgende zeigt schematisch, wie die Bearbeitung erfolgt.

Bild

Alle in diesem Diagramm gezeigten Arbeiten lassen sich in drei Stufen einteilen:

  1. Der Benutzer kommt auf die Seite, auf der das universelle JavaScript von CMS geladen ist, ich habe alle getäuscht))). Ja, es gibt ein kleines Skript, das auf dem Client ausgeführt wird, jedoch nur zum Herstellen einer WebSocket-Verbindung und zum Zuweisen von Listenern zu den für den Nachrichtenaustausch erforderlichen Client-Server-Nachrichten erforderlich ist. Dieses Skript ist so erstellt, dass es mit unseren dynamischen Tags funktioniert, und die Tags wiederum geben die Ausgabe der benötigten HTML-Code-Teile vor.
  2. Diese benutzerdefinierten Tags werden beim Laden aus einer Vorlage auf dem Server durch Komponenten vorverarbeitet, die unser benutzerdefiniertes Tag in gültigen HTML-Code umwandeln. Und all die Dynamik und die Schönheit „fliegen“ aus dem Layout.
  3. Ferner werden alle Klickereignisse und Interaktionen mit der Schnittstelle über die hergestellte WebSocket-Verbindung übertragen.

Tags sind ausschließlich für persistente Daten gedacht, dh, diese Tags können nicht für Sitzungsobjekte bzw. für personalisierte Inhalte für jeden Client verwendet werden. Diese Tags haben nur das Recht, mit einem gemeinsamen UI-Skelett für die gesamte Site zu arbeiten.

Alle Aufgaben, die eine Personalisierung der Inhaltsbereitstellung erfordern, können als Integrationsmodule nach dem Headless-CMS-Prinzip implementiert werden. Das Frontend ist also über REST-Endpunkte integriert.

Es gibt bereits eine Implementierung mehrerer Module, einschließlich der Integration in das AI- Framework im Bereich des maschinellen Lernens zur Verarbeitung natürlicher Sprache ( Natural Language Processing ). Aber ich werde später in einem separaten Artikel darüber schreiben.

Das Problem, das wir geerbt haben


Tim Berners-Lee ist natürlich ein brillanter Wissenschaftler, und er hat eine bequeme Möglichkeit gefunden, mit Inhalten im globalen Internet umzugehen. Diese Methode scheint mir jedoch sehr veraltet zu sein, und alles, was später für die Interaktivität und die visuelle Komponente getan wurde, hat im Gegenteil die Webentwicklung nur kompliziert gemacht. Eine große Anzahl von HTML-Tags ist längst verschwunden. Tatsächlich werden nur divs verwendet, und Eingabe-Tags werden zum Rendern von Formularen verwendet. Die Frage ist also, warum gibt es so viele von ihnen?

Daher müssen Sie von Projekt zu Projekt mühsame und ähnliche Aktionen ausführen. Bevor Sie mit der interessanten Umsetzung von Aufgaben speziell für die Geschäftsautomatisierung beginnen.

Fazit


Ich glaube, ich habe es geschafft, die Essenz des Problems zu vermitteln und meine Lösung für dieses Problem anzubieten. Vielleicht hat jemand meine Lösung bereits implementiert, aber sicher, aber in meiner langjährigen Arbeit habe ich solche Lösungen nicht gesehen. Vielen Dank für Ihre Aufmerksamkeit und für die bevorstehenden Feiertage!

Source: https://habr.com/ru/post/de480866/


All Articles