Sparen Sie 15 % oder mehr bei der Kfz-Versicherung durch den Umstieg auf einfaches JavaScript

Avatar of Burke Holland
Burke Holland am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Haftungsausschluss für Satire: Dieser Artikel ist ebenso viel Satire wie ernsthafte Einsicht, falls es überhaupt welche gibt. Nehmen Sie ihn nicht zu ernst, aber erzählen Sie ihn all Ihren Freunden. Außerdem ist der Teil über Taco Bell zu 100 % wahr. Ich würde über so etwas keinen Witz machen.

Mein Tag beginnt normalerweise so: Ich wache um 6:15 Uhr auf (töte mich), um die Kinder für die Schule fertig zu machen. Sie sind wütend. Ich bin wütend. Alle stehen kurz vor einem emotionalen Zusammenbruch, weil es **6:15 Uhr morgens** ist.

Normalerweise ist das Erste, was ich tue, wenn ich aufwache, aus dem Bett rollen und mit Liegestützen wie Christian Bale loslegen.

BWAHAHAHA. Nein.

Noch bevor ich ganz wach bin und aus dem Bett komme, greife ich zu meinem Handy und schaue auf Twitter. Es ist eine Krankheit, ich weiß. Ich bin nicht stolz darauf, aber wenigstens gebe ich zu, dass ich ein Problem habe, und ich glaube, gemäß den Regeln der Wissenschaft negiert das mein Problem vollständig und macht mich besser als Sie.

Eines Morgens vor ein paar Wochen wache ich auf und sehe diesen Tweet…

Das Wunderbare an Twitter ist, dass es im Wesentlichen *null* Kontext für alles gibt, was man sieht. Das bedeutet, dass Ihr verrücktes Gehirn alle Lücken füllen kann, und in meinem Fall ist das eine Garantie für völlige Katastrophe.

So habe ich diesen Tweet gelesen….

Von mir stark bearbeitet. Meine Photoshop-Fähigkeiten sind ein riesiger, peinlicher Misserfolg.

Ich glaube, mein Gehirn hat ihn so gelesen, weil das *buchstäblich* das ist, was der ursprüngliche Tweet sagt. Mein Gehirn fügt einfach den Teil "Dein ganzes Leben ist eine Lüge" zu so ziemlich allem hinzu, was ich lese oder höre.

Dein ganzes Leben ist eine Lüge

Das stürzte mich sofort in eine existenzielle Krise.

Um fair zu sein, ich bin fast ständig in einem Zustand der Krise, also war das kein großer Sprung für mich. Erst letzte Nacht bei Taco Bell musste ich zwischen dem Beefy 5-Layer Burrito und dem Cheesy Gordita Crunch wählen und kam im Drive-Through fast auseinander. Man kann Leute nicht zu solchen Entscheidungen zwingen und eine sofortige Reaktion erwarten! Und warum brauche ich 50 Päckchen Fire Sauce!?!

Der Punkt ist, dass ich sowieso emotional ziemlich zerbrechlich bin, also können Sie mir nicht vorschlagen, dass Sie React abgeschafft haben, weil es plötzlich niemanden mehr braucht.

Ich hatte so, so, so viele. Fragen wie

  • Was ist mit Binding?
  • Was ist mit Komponenten?
  • Was ist mit State?
  • Was ist mit Templates?

Sie sagen mir, dass Sie all das Zeug plötzlich nicht mehr brauchen? Man kann nicht einfach "zu einfachem JavaScript wechseln", indem man React aus seinem Projekt entfernt. Wenn Sie das tatsächlich tun würden, würden Sie nur von React zu *Ihrer eigenen Version von React* wechseln. Facebook könnte auch sagen, dass ihre Seite in "einfachem JavaScript" aufgebaut ist. Sie haben einfach nur beschlossen, einen Teil dieses JavaScripts im Prozess "React" zu nennen.

Es war unsinnig. Man hätte genauso gut sagen können, dass man 15 % bei der Kfz-Versicherung gespart hat, indem man auf einfaches JavaScript umgestiegen ist. Glücklicherweise musste ich nur 6 quälende Tage warten, bis Jake Archibald in den Blogs alles klarstellte.

DAS HILFT NICHT, JAKE! ICH VERLIERE DEN VERSTAND HIER!

Der Beitrag erklärt weiter, dass Netflix clientseitiges React tatsächlich aufschiebt, bis es benötigt wird, und sich in der Zwischenzeit für serverseitig gerendertes React entscheidet. Er weist auch darauf hin, dass es logisch ist, dass es schneller ist, weil der Browser weniger Arbeit leistet. Netflix lädt clientseitiges React scheinbar im Hintergrund. Es ist da, wenn Sie es brauchen, aber Sie müssen es nicht parsen, wenn Sie es nicht tun.

Ich beschloss, dem nachzugehen und selbst zu sehen, was los ist.

Netflix Login

Einer der Orte, die Jake erwähnt, an denen serverseitiges React angebracht ist, ist die Login-Seite. Fangen wir also dort an. Ich lud die Login-Seite und sie sieht für mich so aus, als wäre clientseitiges React hier immer noch in vollem Umfang vorhanden.

Nebenbei bemerkt, Netflix ist *großartig* im Benennen von Dingen. Ich meine, schauen Sie sich diese Komponenten an: `AkiraLayout`, `JawboneLinkProvider`, `FreezedWrapper`? Okay, `FreezedWrapper` ist nicht so aufregend, aber `AkiraLayout` können Sie mir nicht wegnehmen.

Ich kann also nicht finden, wo React entfernt wurde. Die Login-Seite selbst kommt auf etwa 194 KB und das, bevor sie die Datei `loginController.jsx` lädt, die sie um weitere 204 KB erhöht.

Dann tat ich, was ich zum ersten Mal hätte tun sollen, nämlich das Video von Netflix anzusehen, das für diesen Abstieg in die Tiefen meiner Unsicherheit verantwortlich war, und bemerkte, dass sie nur die Splashpage erwähnten.

Die Splashpage ist nur netflix.com. Kein Login. Keine Videos. Die Splashpage. Diese Folie? Die, die sich im ganzen Internet verbreitete und in meine Therapiesitzungen gelangte? Diese Folie bezieht sich nur auf die Splashpage. Netflix hat React von seiner Splashpage entfernt und die wenigen Interaktionen, die es gab, durch einfaches JavaScript ersetzt.

Und da haben Sie den Kontext. Also korrigieren wir die Folie noch einmal…

Das ist die eigentliche Geschichte hier.

Es ist bedauerlich, dass wir uns an einer einzigen Folie festhalten, die völlig aus dem Kontext gerissen ist. Das ist nicht die Schuld von Netflix. Oder vielleicht doch. Ich meine, sie haben es getwittert, aber sehen Sie, das ist wirklich die Schuld von 2017. So spielt sich all der Nachrichtenfluss in unserem Leben ab.

Was wirklich bedauerlich ist und was Jake in seinem Beitrag zu vermitteln versuchte, ist, dass wir einige tatsächliche coole Dinge, die Netflix tut, völlig verpasst haben. Hauptsächlich die Kombination aus serverseitigem React und Prefetching. Oder besser gesagt, die Idee, dass komplexerer Code im Hintergrund heruntergeladen und geparst werden kann, anstatt beim Laden der Seite.

Prefetching ist kein gelöstes Problem

Wir neigen dazu zu vergessen, dass Dinge wie Prefetching nicht unbedingt ein gelöstes Problem sind. Während Service Worker großartig sind, kann Netflix sie nicht verwenden, da die Unterstützung zu spärlich ist. Darüber hinaus ist die Prefetching-API des Browsers fehlerhaft. In derselben Präsentation berichtet Netflix, dass die API (die nur das Link-Tag ist) eine Erfolgsquote von nur 30 % hat. Das bedeutet, dass Ihr Prefetch in einigen Fällen nur etwa ein Drittel der Zeit funktioniert. 😳

Der Grund dafür ist, dass die API eine Reihe von Entscheidungen darüber trifft, ob sie präfetchen soll oder nicht, abhängig von Ihrem Gerät und Ihren Ressourcen. Es gibt keine Garantie dafür, dass Ihre Ressourcen überhaupt geladen werden.

Was mir am bemerkenswertesten erscheint, ist, dass Netflix eine weitere Lösung gefunden hat, die so einfach ist, dass es weh tut: Machen Sie einfach einen AJAX-Aufruf und tun Sie nichts mit dem Ergebnis; der Browser wird diese Ressource zwischenspeichern.

MEIN GOTT, ICH LIEBE DAS WEB!

Sie brauchen äh, immer noch React

Also ja, Sie brauchen clientseitig immer noch React. Netflix verwendet es immer noch und hat nie gesagt, dass sie es nicht tun.

Was sie gesagt haben, ist, dass sie einige kreative Wege gefunden haben, um die Benutzererfahrung zu verbessern, und diese mit ihrer aktuellen React-Implementierung kombiniert haben. Das sollte Sie als React-Entwickler begeistern.

Vielleicht veröffentlicht Netflix eine Bibliothek für Prefetching mit einem sehr coolen Namen. Ist "fakenews.js" noch frei?

Besonderer Dank an Brian Holt, der diesen Artikel rezensiert hat und immer noch bereit war, mein Freund zu sein.