Homepage von Basti1012 = ,Hauptmenü
Hier im Forum bekommt ihr bei euren fragen schnelle hilfe.Hier geht es rund um das Web SeitenProgrammieren.Alles rund ums Javascript,Html,Php,Css und Sql.Auf fast allen Fragen haben wir eine Antwort.
Der Soforthilfe-chat verspricht das ,was sein Name sagt. Hier sind Leute Online die sofort ihre hilfe anbieten.Seht in der OnlineListe nach und wenn einer Online ist werdet ihr auch antwort bekommen. Admine ,Moderatoren und Helfer sind unsere Spezialisten in Sachen Web Programierung


(Bild: Thongchai Kitiyanantawong / Shutterstock)

Das Buzzword React ist seit ein paar Jahren überall. React Hooks, React mit GraphQL ? solche Schlagwörter dominieren das Netz. Wer gerade erst angefangen hat, Coden zu lernen, und sich jetzt fragt, was eigentlich dahinter steckt ? wir erklären es euch. 

Das Beste an moderner Webentwicklung ist, dass es in diesem Themengebiet so unglaublich viele Ressourcen gibt. Das Schlimmste an moderner Webentwicklung ist, dass es so unglaublich viele Ressourcen gibt, so dieser Autor in seinem Artikel auf Medium. Das mag euch vielleicht bekannt vorkommen.

Wer gerade erst angefangen hat, sich mit Entwicklungsthemen zu befassen, ist oft schon mit der bloßen Entscheidung, was er oder sie als nächstes ? oder als erstes ? lernen sollte, überfordert. Angular, Vue, Firebase, Bootstrap, Node.js, Docker, Python, Rust, Redux, Git, Babel, Webpack, Kotlin ? die Liste ließe sich unendlich fortführen. Um zu verstehen, was hinter dem Hype um React steckt, ist es wahrscheinlich sinnvoll, ein paar Basics verstanden zu haben.

So ist eine Webanwendung aufgebaut

Eine Webanwendung besteht aus Frontend und Backend respektive Client-Side und Server-Side. Das Backend besteht aus Server, Applikation und Datenbank. Der Server kommuniziert mit der Datenbank und hostet eure Anwendung. Das Backend schickt Daten an das Frontend. JavaScript konvertiert diese Daten in HTML. Eine Webanwendung besteht grundsätzlich aus beidem, Frontend und Backend. Im Browser manifestiert sich das Frontend in Form eines User-Interface, also dem, was ihr seht und womit ihr interagiert.

Bibliothek mit Ressourcen zum Bauen von User-Interfaces

React ist ein JavaScript-Framework oder eine Library für die Entwicklung von User-Interfaces. Eigentlich ist der Begriff Library ganz passend: In einer Bibliothek gibt es eine Auswahl von Büchern, die von Bibliothekaren kuratiert und für euch sortiert wurden. Wenn ihr ein Buch aus der Bibliothek braucht, könnt ihr es einfach über das Bibliothekssystem finden und ausleihen. In einer JavaScript-Library gibt es zwar keine Bücher, dafür aber fertigen Code, auf den ihr zugreifen könnt.

Andere Frameworks mit demselben Zweck sind zum Beispiel Vue oder Angular. Mit anderen Worten: React ist eine Library für die Frontend-Entwicklung. Ein Frontend zu bauen, geht natürlich auch ohne Framework mit ?reinem? JavaScript, das auch Vanilla JavaScript genannt wird. Entwickelt wurde React von Facebook: Die Facebook-App und die Webversion basieren beide auf der Library. React eignet sich besonders gut für Single-Page-Applikationen und für interaktive Apps.

Single-Page-Apps

In einer Web-App gibt es verschiedene Ansichten oder Views. Klickt ihr auf einem UI irgendwo drauf, ändert sich die View. Viele Internetnutzer assoziieren eine Änderung der View vielleicht mit einem Seitenwechsel. Das ist nicht falsch: Frühere Webanwendungen bestanden typischerweise aus mehreren verschiedenen Seiten. Wenn eine neue View angezeigt werden sollte, musste dafür eine neue Seite geladen werden.

Eine modernere Herangehensweise sind Single-Page-Applications oder SPA. Eine Single-Page-Application besteht aus verschiedenen Views ? bei nur einer einzelnen Seite. Diese Single Page enthält alle vorhandenen Views ? die aktive kann dynamisch getoggelt werden. In einer Multipage-App wären alle Views, die eure Anwendung bietet, auf einer separaten Seite. Klickt ein User zum Beispiel auf einen Sign-in-Link in der Navigationsleiste, müsste dafür eine neue Seite, die die Sign-in-Ansicht enthält, geladen werden. Bei einer Single-Page-App ändert sich beim Klick auf Sign-in basierend auf dem State einfach die aktive View, das Laden einer separaten Seite ist nicht nötig. Aber was ist eigentlich ein State?



Über ORM

ORM ist an sich eine feine Sache. Durch die zusätzliche Abstraktionsschicht ist man so gut wie vollkommen datenbankunabhängig. Weiterhin hat man einen sauberen OOP Ansatz duchgehend im Projekt ohne hässliche SQL Statements dazwischengemischt zu haben. Es fühlt sich sehr „smooth“ an und steigert – richtig gemacht – auch durchaus die Verständlichkeit des Codes.

Trotzdem bin ich nicht in allen Belangen großer Freund von ORM. Neulich hatte ich mit einer Tabelle zu tun, in der mehrere Millionen Tupel enthalten waren. Ein falsch platzierter Index oder der kleinste Fehler bei der Formulierung der Query führt dazu, dass man mehrere Minuten auf das Ergebnis der Abfrage warten darf. Noch schlimmer könnte auch gleich Filesort verwendet werden.Das führt bei einer derartigen Tabellengröße direkt mal dazu, dass die Platte komplett vollgeschrieben wird. Was hat diese Anekdote jetzt mit ORM zu tun? Bei „kritischen“ SQL-Statements wird ein ORM nie so zielgerichtete Queries formulieren können, dass die Performance mit einer handgeschriebenen mithalten
könnte. Alles, was mehr ins Detail geht kann mit einem ORM sehr schnell haklig werden oder wird zumindest unverhältnismäßig komplizierter.

Zum ORM-Pluspunkt „Unabhängigkeit von der Datenbankengine“ lässt sich erwidern, dass man mit PDO ohnehin mit dem überwiegenden Teil der Datenbanken kommunizieren kann, ohne schmerzliche Änderungen bei einem DB-Wechsel vornehmen zu müssen. Bleibt noch der zusätzliche Installationsaufwand und Performanceverlust durch den „OOP-Overhead“ bei der Verwendung von ORM hängen.

Letztendlich darf ich dann noch eine neue Abfrage-Sprache lernen (etwa DQL). Das kann man sicher alles verkraften und in Kauf nehmen, ich sag auch auf keinen Fall das von ORM generell abzuraten ist. Ich favorisiere daher eine selbstgeschriebene ORM-Lösung die man an den benötigten Stellen bequem anpassen und zum Einsatz bringen kann. Das erhöht die Flexibilität merklich (individuelles Eingehen auf die vorliegende Situation), steigert die Perfomance (keinen nicht benötigten Ballast) und durch ein Aufsetzen auf PDO ist man letztendlich doch noch flexibel genug.

Einen Ansatz dazu werde ich evtl. mal in naher Zukunft diskutieren.

Umwetter Warnumgen und Wetter vorschau