Wie man rasend schnelle Anwendungen erstellt
Das Ziel des Entwicklers ist es, die Leistung der App zu steigern und die Benutzerfreundlichkeit zu verbessern. Oft steht die Zeit gegen die Entwickler, denn die Interessengruppen sitzen ihnen im Nacken, die Konkurrenz droht, bessere Apps herauszubringen, als sie produzieren können, und die Nutzer deuten an, zu den Apps der Konkurrenz zu wechseln. Daher sind die Projektmanagement-Teams immer auf der Suche nach Methoden, die ihnen helfen, Anwendungen schnell zu entwickeln – rasend schnell. Und ja, nur schnell ist nicht genug. Sie müssen sich darauf konzentrieren, dass diese Anwendungen belastbar sind, eine geringe Latenz aufweisen und hervorragende Rendering-Zeiten bieten.
Auswahl des richtigen Technologie-Stacks
Ein Tech-Stack ist ein Satz von Programmiersprachen, Tools, Technologien und Softwareprodukten, die Entwickler zur Erstellung einer funktionalen Webanwendung verwenden. Diese können als serverseitiger (Backend) Stack, clientseitiger (Frontend) Stack und Middleware kategorisiert werden. Aufgrund der großen Anzahl von Gem-Bibliotheken ist RoR das am häufigsten verwendete Framework für die schnelle App-Entwicklung. Wenn Sie zum Beispiel gerade erst mit Ihrer Tätigkeit beginnen, können Sie eine Sprache, ein Framework oder ein CMS-Tool wählen, mit dem Sie einen Prototyp erstellen können. Die Werkzeuge mit der kürzesten Einarbeitungszeit sind für Sie die besten.
Vermeiden Sie eine vorzeitige Optimierung
Donald Knuth sagte einmal: „Vorzeitige Optimierung ist die Wurzel allen Übels“.
Entwickler verbringen viel Zeit damit, über die unkritischen Teile einer Software nachzudenken, anstatt die kritischen Teile des Codes zu entwickeln. Sie legen keinen Wert auf die kritischen Teile des Codes und arbeiten nicht an dem Code, der optimiert werden muss.
Unerfahrenheit könnte die Ursache dafür sein. Um zu verhindern, dass Ihrem Team Ähnliches widerfährt, sollten Sie dafür sorgen, dass das Team die erste Version des Codes schreibt, ohne sich Gedanken über seine Leistung zu machen. Später kann das Team mit Hilfe eines Profilers überprüfen, wo die Engpässe liegen.
Auf diese Weise können sie sich um die Bereiche kümmern, die wirklich wichtig sind, und müssen sich nicht darum kümmern, was nicht wichtig ist.
Im PHP-Bereich gibt es einige Tools, mit denen Sie Ihren Code profilieren können. Dazu gehören xdebug, xhprof, Symphony profiler, Tideways, Blackfire.io und die Stopwatch-Komponente.
Tun Sie nur, was Sie tun müssen
Oft tut Ihr Code Dinge, die über das hinausgehen, was Sie von ihm erwarten. Vor allem, wenn es um die Verwendung komplexer Bibliotheken und Frameworks geht. Manchmal kann es vorkommen, dass Sie Klassen laden, die Sie gar nicht verwenden wollten, oder eine Datenbankverbindung öffnen, die nicht benötigt wird, um Ergebnisse für eine bestimmte Anfrage zu generieren.
Diese müssen Sie vermeiden, denn sie könnten Ihrer Leistung im Wege stehen. Im Folgenden finden Sie einige Tipps, wie Sie eine bessere Leistung erzielen können:
a) Autoloading
– Mit Hilfe der Autoloading-Funktion brauchen Sie sich nur um die Dateien zu kümmern, die Sie in Ihr Skript aufnehmen wollen. Es stimmt, dass Autoloading in der Vergangenheit ein etwas komplexes Unterfangen war, aber mit Hilfe von Tools wie Composer und PSR-0- und PSR-4-Standards ist die Konfiguration von Autoloading ein Kinderspiel.
b) Injektion von Abhängigkeiten
– Obwohl es sich um ein in Java weit verbreitetes Entwurfsmuster handelt, hat Dependency Injection auch in der Welt von PHP viel Anklang gefunden. Der Grund dafür ist, dass Frameworks wie Symphony, Laravel und Zend es in großem Umfang verwenden. Durch Dependency Injection können Entwickler Komponenten durch die Constrictor-Methode injizieren und können so in Abhängigkeiten denken. Dies hilft ihnen, kleine isolierte Komponenten zu schaffen, bei denen nur eine Sache im Mittelpunkt steht.
Komprimierung
Sie können die Datengröße reduzieren, indem Sie die für den Inhalt verfügbaren Komprimierungstechniken verwenden. REST-Dienste haben einen geringeren Overhead und stellen sicher, dass die Bilder in den Daten die richtige Größe haben, denn schwer zu ladende Bilder können das Laden von Anwendungen stark beeinträchtigen. Vergewissern Sie sich auch, dass die HTTP-Komprimierung eingeschaltet ist, wenn Sie einen Webserver verwenden.
Verwenden Sie die Caching-Methode, um sich wiederholende Aufgaben zu erledigen
Es besteht kein Zweifel daran, dass Webanwendungen heutzutage sehr komplex sind und dass sie in der Lage sein müssen, auf jede Anfrage eine Antwort zu geben. Eine intelligente Art, sich wiederholende Aufgaben zu erledigen, ist das Caching. Dies ist eine weit verbreitete Technik, die überall zu finden ist. Bei der Webprogrammierung gibt es verschiedene Ebenen des Caching, die Sie verwenden können, wie den Byte Code Cache, den Anwendungscache, den HTTP-Cache und den Proxy-Cache. Dadurch können übermäßige Fahrten durch die Content-Infrastruktur und das Mobilfunknetz vermieden werden.
Netzwerk zur Bereitstellung von Inhalten (CDN)
Verringerung der Netzwerklatenz, Pre-Fetching von Inhalten, Optimierung des Netzwerk-Routings und mehr durch CDNs oder Content Delivery Networks. Diese können Ihre Bewerbung erheblich beschleunigen. Einige der am häufigsten verwendeten CDNs sind Akamai, Edgecast, Limelight, Amazon CloudFront und sogar Telekommunikationsunternehmen wie AT&T und Level3.
Wenn das Backend ein Leistungsverweigerer ist
Wenn Sie das Gefühl haben, dass der Backend-Server viel Zeit in Anspruch nimmt, dann konfigurieren Sie die Softwarestruktur so, dass Portabilität, Erweiterbarkeit, Änderbarkeit und Skalierbarkeit die Leistung der Anwendung nicht beeinträchtigen. Sie werden wahrscheinlich eine Architekturbewertung durchführen müssen, um festzustellen, welcher Teil der Anwendung Geschwindigkeit ausstrahlt. Wenn Sie sich für einen Drittanbieter entscheiden, sollten Sie diesem alle wichtigen Fragen stellen, bevor Sie ihn beauftragen.
Langsames Laden von Assets
On-Demand- oder Lazy-Loading-Assets können die Leistung Ihrer Webanwendung verbessern. Dies gilt jedoch hauptsächlich für die Bilder. Langsames Laden von Bildern kann zu einer schnelleren Ladezeit Ihrer Seite führen,
die Belastung des Servers zu verringern und den Speicherbedarf des Browsers zu reduzieren. Lazy Loading kann durch entsprechende Plugins oder Erweiterungen realisiert werden. Hier ist ein Plugin, das das faule Laden von Bildern für React übernimmt – react-lazy-load.
Array-ids bei der Verwendung von DOM-Manipulationsbibliotheken verwenden
Die Verwendung von Array-ids wäre eine große Hilfe bei der Verbesserung der Leistung von dynamischen Websites, wenn Sie React, Angular, Ember oder eine andere Bibliothek zur DOM-Manipulation verwenden. Array-ids geben DOM-Manipulations-Engines an, wann ein bestimmter Knoten auf ein bestimmtes Element im Array abgebildet werden kann. Ohne diese Funktion zerstören die Bibliotheken die vorhandenen Knoten und erstellen neue, was die Leistung beeinträchtigt.
„Befolgen Sie diese Tipps und konzentrieren Sie sich darauf, den richtigen Code für Ihr Projekt zu schreiben, und Sie können ein hohes Maß an Leistung und Skalierbarkeit für Ihre Anwendung erreichen.
- 6 Faustregeln für die Erstellung blitzschneller Webserver-Anwendungen
- Erstellung rasend schneller Android-Anwendungen
Flickr.com / Bjorn Gruenwald
Über den Autor: Reema arbeitet als Thought Leader bei PHPBabu.