Technologische Trends der Webentwicklung 2019

EinfĂŒhrung

Die digitale Transformation erfasst Jahr fĂŒr Jahr immer mehr verschiedene Lebens- und GeschĂ€ftsbereiche. Wenn ein Unternehmen wettbewerbsfĂ€hig sein möchte, reichen gewöhnliche Informationswebseiten nicht mehr aus; es sind mobile und Webanwendungen erforderlich, die den Nutzern nicht nur Informationen bieten, sondern auch bestimmte Funktionen ermöglichen: Produkte und Dienstleistungen zu erhalten oder zu bestellen und Werkzeuge bereitzustellen.

Technologische Trends der Webentwicklung 2019

So reicht es modernen Banken beispielsweise nicht mehr aus, lediglich eine Informationswebsite zu besitzen; sie benötigen Online-Tools fĂŒr ihre Kunden, ein persönliches Konto, in dem der Nutzer seine Konten, Investitionen und Kredite verwalten kann. Auch kleinen Unternehmen sind bequeme Werkzeuge wichtig, um die Konversion zu steigern, beispielsweise die Terminvereinbarung beim Arzt oder Friseur, die Tischreservierung im Restaurant oder im Spielzimmer fĂŒr den Kindergeburtstag.

Die EigentĂŒmer selbst mĂŒssen rechtzeitig Informationen in einem benutzerfreundlichen Format ĂŒber den Zustand ihres Unternehmens erhalten, beispielsweise durch die Erfassung statistischer Daten und Analysen ĂŒber verschiedene Produktionsabteilungen oder die ProduktivitĂ€t der Abteilungen. Oft sammelt jede Abteilung diese Daten auf ihre eigene Weise und kann sogar unterschiedliche Werkzeuge nutzen, wodurch die EigentĂŒmer viel persönliche Zeit aufwenden mĂŒssen, um alles zu verstehen. Dies kann sich direkt oder indirekt auf die Effizienz des Unternehmens und letztendlich auf den Gewinn auswirken. Auch hier können digitale Transformation und die Entwicklung einer Web- oder mobilen Anwendung helfen.

Die Technologien stehen nicht still und entwickeln sich stÀndig weiter, und das, was vor ein paar Jahren verwendet wurde, kann heute bereits veraltet sein, oder das, was vor einigen Jahren nicht realisierbar war, ist jetzt RealitÀt geworden. Es gibt eine Vielzahl moderner Werkzeuge, die helfen, Web- und mobile Anwendungen schneller und besser zu erstellen. Basierend auf persönlichen Beobachtungen und Erfahrungen möchte ich meine Sichtweise teilen, welche Technologien und Werkzeuge in naher Zukunft gefragt sein werden und warum es sich lohnt, bei der Erstellung moderner Webanwendungen darauf zu achten.

Single Page Application (Einseitenanwendungen)

Lassen Sie uns ein wenig mit der Terminologie klÀren. Eine Single Page Application (SPA) ist eine Webanwendung, deren Komponenten einmalig auf einer Seite geladen werden, wÀhrend der Inhalt nach Bedarf nachgeladen wird. Und beim Wechsel zwischen den Abschnitten der Anwendung wird die Seite nicht vollstÀndig neu geladen, sondern es werden nur die erforderlichen Daten nachgeladen und angezeigt.

Einseitige Anwendungen gewinnen im Vergleich zu klassischen Webanwendungen erheblich an Geschwindigkeit und Benutzerfreundlichkeit. Mit einer SPA kann man den Effekt eines Websitedesigns erzielen, das wie eine Desktop-Anwendung funktioniert, ohne Neustarts und wesentliche Verzögerungen.

Wenn vor einigen Jahren einseitige Anwendungen praktisch keine Suchmaschinenoptimierung unterstĂŒtzten und vor allem zur Erstellung von Benutzerkonten und Administrationspanelen verwendet wurden, ist es heute viel einfacher, eine einseitige Anwendung mit vollstĂ€ndiger UnterstĂŒtzung fĂŒr Suchmaschinenoptimierung (SEO) zu erstellen. Durch den Einsatz von einseitigen Anwendungen mit serverseitigem Rendering ist dieses Problem heute vollstĂ€ndig verschwunden. Anders gesagt: Es handelt sich um dieselbe einseitige Anwendung, aber beim ersten Abruf generiert der Server nicht nur Daten, sondern erstellt eine bereit zur Anzeige HTML-Seite, und Suchmaschinen erhalten fertige Seiten mit allen Meta-Informationen und semantischen Markups.

Mit der Entwicklung von Werkzeugen zur Erstellung von clientseitigen Webanwendungen wird die Entwicklung und Umstellung auf einseitige Anwendungen in diesem und in den kommenden Jahren nur zunehmen. Wenn Sie eine alte Anwendung haben, die moralisch veraltet ist und langsam arbeitet und zudem bei jedem Wechsel zwischen den Abschnitten die Seite vollstĂ€ndig neu lĂ€dt, können Sie sich in diesem Jahr ohne Bedenken auf eine schnelle einseitige Anwendung umstellen – jetzt ist eine gute Zeit, die Technologien ermöglichen es bereits, dies ziemlich schnell und qualitativ durchzufĂŒhren.

Einen modernen und schnellen Webauftritt zu haben, ist sehr gut, aber ich möchte Ihnen ehrlich mitteilen: Nicht alle Anwendungen lassen sich leicht in einseitige umwandeln, und der Übergang kann nicht billig werden! Deshalb muss man verstehen, wem und warum dieser Übergang benötigt wird.

Um Ihnen bei der KlÀrung zu helfen, werde ich in der folgenden Tabelle einige Beispiele geben, wann die Entwicklung oder Umstellung auf SPA sinnvoll und gerechtfertigt ist und wann nicht.

ZA

Wenn Sie eine moderne, schnelle Anwendung erstellen möchten und möchten, dass nicht nur die Webversion, sondern auch die mobile oder sogar Desktop-Version genutzt wird, und alle Prozesse und Berechnungen auf einem externen oder Cloud-Server stattfinden. Und das Ganze auch so, dass alle Kunden eine einheitliche Interaktionsschnittstelle haben und keine Notwendigkeit besteht, jede Änderung im Servercode vorzunehmen, wenn ein neuer Kunde hinzugefĂŒgt wird.

Zum Beispiel: soziale Netzwerke, Aggregatoren, SaaS-Plattformen (Software as a Service), MarktplÀtze

Wenn Sie einen Laden oder einen Webdienst haben, wissen Sie, dass er langsam ist und die Leute abspringen. Sie möchten ihn schneller machen, erkennen den Wert der Kunden und sind bereit, fĂŒr ein Upgrade ab einer Million Rubel zu bezahlen.

Sie haben eine mobile Anwendung, die die API der Website nutzt, und die Website ist dabei langsam und lÀdt den Inhalt bei Seitenwechseln vollstÀndig neu.

GEGEN

Wenn Ihre Zielgruppe keine modernen Browser und GerÀte verwendet.

Zum Beispiel: spezifische Unternehmensbereiche wie die Entwicklung interner Systeme fĂŒr Banken, medizinische Einrichtungen und Bildung.

Ihre HaupttĂ€tigkeit fĂŒhren Sie offline durch und sind nicht bereit, irgendwelche Dienstleistungen online anzubieten, und Sie mĂŒssen lediglich Kunden anziehen.

Wenn Sie einen Online-Shop oder Webdienst haben, der bereits gut verkauft, sehen Sie keinen Kundenverlust und keine Beschwerden.

Wenn Sie eine funktionierende Anwendung haben, die sich nicht fĂŒr SPA anpassen lĂ€sst und alles von Grund auf neu geschrieben werden muss und Sie nicht bereit sind, dafĂŒr mehrere Millionen auszugeben.

Zum Beispiel: Es gibt eine Box-Website oder einen alten, monolithischen Code.

Progressive Web Applications

Progressive Web Applications (progressive Webanwendung) sind das Produkt einer gemeinsamen Evolution von nativen Anwendungen und Websites. Im Grunde genommen ist es eine Webanwendung, die wie eine echte native Anwendung aussieht und sich wie eine solche verhÀlt, Push-Benachrichtigungen empfangen kann, im Offline-Modus funktioniert usw. Dabei muss der Benutzer die Anwendung nicht aus dem App Store oder Google Play herunterladen, sondern kann sie einfach auf den Desktop speichern.

Da sich die Technologie oder der Ansatz zur Entwicklung von PWA seit 2015 entwickelt, gewinnt sie in letzter Zeit auch enorm an PopularitÀt im E-Commerce-Bereich.

Einige reale Beispiele aus dem Leben:

  • Im vergangenen Jahr konnte das Hotel Best Western River North, nachdem es eine neue PWA-fĂ€hige Website gestartet hatte, den Umsatz um 300 % steigern.
  • Der arabische Marktplatz OpenSooq.com konnte nach der EinfĂŒhrung der PWA-UnterstĂŒtzung auf seiner Website die Besuchszeit um 25 % und die Anzahl der Leads um 260 % erhöhen.
  • Der bekannte Dating-Service Tinder konnte die Ladezeit von 11,91 Sekunden auf 4,69 Sekunden reduzieren, indem er eine PWA entwickelte; zudem ist die App 90 % leichter als ihr natives Android-Pendant.

Ein weiterer Hinweis darauf, dass man dieser Technologie Beachtung schenken sollte, ist, dass eine der grĂ¶ĂŸten Plattformen zur Erstellung von E-Commerce-Projekten, Magento, im Jahr 2018 eine frĂŒhe Entwickler-Version von PWA Studio veröffentlichte. Die Plattform ermöglicht es, ‘out of the box’ ein Frontend auf Basis von React fĂŒr eigene E-Commerce-Lösungen mit PWA-UnterstĂŒtzung zu erstellen.

Ein Ratschlag fĂŒr diejenigen, die bereits ein Internetprojekt haben oder nur die Idee eines neuen Dienstes mit mobiler UnterstĂŒtzung: Eilen Sie nicht, um eine vollwertige native App zu schreiben, sondern schauen Sie sich zunĂ€chst die PWA-Technologie an. Es könnte die beste Lösung in Bezug auf Preis und QualitĂ€t fĂŒr Ihr Produkt sein.

Ein wenig aus der Praxis: Um eine einfache native Nachrichten-App zu erstellen, vorausgesetzt, es gibt bereits einen funktionierenden REST-Server, benötigt man etwa 200-300 Personstunden fĂŒr jede Plattform. Bei einem durchschnittlichen Marktarif von 1500-2000 Rubel/Stunde könnte die App etwa 1 Million Rubel kosten. Wenn man eine Webanwendung mit vollstĂ€ndiger PWA-UnterstĂŒtzung entwickelt: Push-Benachrichtigungen, Offline-Modus und andere Funktionen, dann wĂŒrde die Entwicklung 200-300 Personstunden in Anspruch nehmen, aber das Produkt wĂ€re sofort auf allen Plattformen verfĂŒgbar. Das bedeutet eine Ersparnis von etwa dem Doppelten, ganz zu schweigen davon, dass keine GebĂŒhren fĂŒr die Platzierung in App-Stores bezahlt werden mĂŒssen.

Serverless

Dies ist ein weiterer moderner Ansatz fĂŒr die Entwicklung. Wegen des Namens denken viele, dass es sich tatsĂ€chlich um eine serverlose Entwicklung handelt, dass kein Backend-Code geschrieben werden muss und jeder Frontend-Entwickler eine vollwertige Webanwendung erstellen kann. Doch das ist nicht der Fall!

Beim Erstellen einer Serverless-Anwendung ist ein Server weiterhin erforderlich, ebenso wie eine Datenbank. Der Hauptunterschied bei diesem Ansatz besteht darin, dass der Backend-Code in Form von Cloud-Funktionen dargestellt wird (eine andere Bezeichnung fĂŒr Serverless ist FaaS – Funktionen als Service) und es der Anwendung ermöglicht, schnell und einfach zu skalieren. Bei der Erstellung einer solchen Anwendung kann sich der Entwickler auf geschĂ€ftliche Aufgaben konzentrieren und muss sich keine Gedanken ĂŒber Skalierung und Infrastrukturkonfiguration machen, was die Entwicklung der Anwendung beschleunigt und die Kosten senkt. DarĂŒber hinaus hilft der Serverless-Ansatz, Mietkosten zu sparen Server, da er genau so viele Ressourcen verwendet, wie zur AusfĂŒhrung der Aufgabe benötigt werden, und wenn keine Last vorhanden ist, wird keine Serverzeit verwendet und auch nicht abgerechnet.

Zum Beispiel konnte das große amerikanische Medienunternehmen Bustle seine Ausgaben um Hosting mehr als 60 % senken, als es auf Serverless umstieg. Das Unternehmen Coca-Cola konnte bei der Entwicklung eines automatisierten Systems fĂŒr den Verkauf von GetrĂ€nken ĂŒber Automaten die Hosting-Kosten von 13.000 USD auf 4.500 USD pro Jahr durch den Wechsel zu Serverless senken.

In den letzten paar Jahren wurde Serverless aufgrund der Neuheit und seiner EinschrĂ€nkungen hauptsĂ€chlich fĂŒr kleine Projekte, Startups und MVPs verwendet, aber heute, dank der Evolution der Software, der Vielseitigkeit und der LeistungsfĂ€higkeit der Containerisierung von Servern, entstehen Werkzeuge, die es ermöglichen, EinschrĂ€nkungen abzubauen, die Entwicklung von Cloud-Anwendungen zu vereinfachen und zu beschleunigen.
Das bedeutet, dass UnternehmensgeschĂ€ftszenarien, in denen Cloud-Modernisierung zuvor als unmöglich galt (z.B. fĂŒr Edge-GerĂ€te, ĂŒbertragene Daten oder zustandsbehaftete Anwendungen), jetzt RealitĂ€t sind. Vielversprechende Werkzeuge in diesem Bereich sind kNative und Serverless Enterprise.

Aber trotz all dessen ist Serverless nicht die Silberkugel fĂŒr die Entwicklung von Webanwendungen. Wie jede andere Technologie hat sie ihre Vor- und Nachteile, und man sollte dieses Werkzeug mit Bedacht auswĂ€hlen und „nicht NĂ€gel mit einem Mikroskop einschlagen“, nur weil es technologischer ist.

Um Ihnen zu helfen, sich zu orientieren, finden Sie hier einige Beispiele, wann Sie bei der Entwicklung eines neuen oder der Verbesserung eines bestehenden Webdienstes ĂŒber Serverless nachdenken sollten:

  • Wenn die Serverlast periodisch ist und Sie fĂŒr ungenutzte KapazitĂ€ten bezahlen. Zum Beispiel hatten wir einen Kunden mit einem Netzwerk von Kaffeeautomaten, bei dem nur einige Hundert oder Tausend Anfragen pro Tag verarbeitet werden mussten, wĂ€hrend die Anzahl der Anfragen nachts auf einige Dutzend sank. In diesem Fall ist es viel effizienter, nur fĂŒr die tatsĂ€chliche Ressourcennutzung zu zahlen, weshalb wir eine Lösung auf Serverless-Basis vorgeschlagen und umgesetzt haben.
  • Wenn Sie nicht in technische Details der Infrastruktur eintauchen und nicht zu viel fĂŒr die Konfiguration und den Support von Servern und Lastenausgleichstarifen bezahlen möchten. Zum Beispiel wissen Sie bei der Entwicklung eines Marktplatzes nicht genau, welche Besucherzahlen Sie erwarten können, oder planen hohe Besucherzahlen und möchten sicherstellen, dass Ihre Anwendung die Last problemlos bewĂ€ltigt, dann ist Serverless eine ausgezeichnete Wahl.
  • Wenn es notwendig ist, bestimmte Streaming-Ereignisse in der Hauptanwendung auszufĂŒhren, Nebeninformationen in Tabellen zu speichern oder Berechnungen durchzufĂŒhren. Zum Beispiel, um Analysedaten des Nutzerverhaltens zu sammeln, diese auf bestimmte Weise zu verarbeiten und in der Datenbank zu speichern.
  • Wenn Sie die aktuelle Funktionsweise der Anwendung vereinfachen, vereinheitlichen oder beschleunigen möchten. Zum Beispiel, um leistungssteigernde Dienste fĂŒr die Arbeit mit Bildern oder Videos zu erstellen, wenn der Nutzer ein Video in die Cloud hochlĂ€dt und das Transcoding von einer separaten Funktion ĂŒbernommen wird, wĂ€hrend der Hauptserver weiterhin im normalen Betrieb lĂ€uft.

Wenn Sie Ereignisse von Drittanbietern verarbeiten mĂŒssen. Zum Beispiel, um Antworten von Zahlungssystemen zu verarbeiten oder Benutzerdaten zur Beschleunigung der Bearbeitung potenzieller Kundenanfragen in CRM-Systeme umzuleiten.
Wenn Sie eine große Anwendung haben und einige Teile der Anwendung effizienter in einer anderen Sprache implementiert werden können. Zum Beispiel, wenn Sie ein Projekt in Java haben und neue Funktionen hinzufĂŒgen mĂŒssen, aber keine freien KapazitĂ€ten verfĂŒgbar sind, oder wenn die Implementierung in dieser Sprache lĂ€nger dauern wĂŒrde und bereits eine Lösung in einer anderen Sprache existiert, dann kann Serverless auch dabei helfen.

Dies ist lÀngst nicht die gesamte Liste von Werkzeugen und Technologien, die Beachtung verdienen. Ich habe nur die geteilt, die wir jeden Tag in unserer Arbeit nutzen und von denen wir genau wissen, wie sie dem GeschÀft helfen können.

Quelle: habr.com

60GB SSD 8Gb DDR4