Phoenix LiveView 1.0.0 veröffentlicht
(phoenixframework.org)- Sechs Jahre nach dem ersten Commit wurde der Meilenstein 1.0 erreicht
- Anfang und Motivation von LiveView
- LiveView wurde gestartet, um serverseitig gerenderte Anwendungen ohne JavaScript zu erstellen.
- Komplexe Probleme wie Echtzeit-Formularvalidierung, Mengenaktualisierungen im Warenkorb und Live-Streaming-Updates lassen sich damit einfach lösen.
- Elixir und Phoenix eignen sich besonders gut für diesen Ansatz.
- Vorteile eines Echtzeit-Fundaments
- Es stellt allen Nutzern und UIs eine bidirektionale Echtzeit-Basis bereit, sodass sich Entwickler auf die Umsetzung von Funktionen konzentrieren können.
- Mit Elixir lassen sich Funktionen umsetzen, die auf anderen Plattformen nicht möglich sind.
- Die frühe Implementierung von LiveView
- Ähnlich wie bei React wurde eine serverbasierte UI umgesetzt, die die Oberfläche bei Zustandsänderungen automatisch aktualisiert.
- Mit Phoenix Channels lassen sich Millionen von Verbindungen unterstützen.
- Optimierung des Programmiermodells
- Die differenzierende Engine von LiveView führt nur die dynamischen Teile von Templates aus und überträgt nur ein Minimum an Daten.
- Durch die Trennung statischer und dynamischer Teile werden effiziente Updates möglich.
- Latenz auf Spitzenniveau
- LiveView bietet durch kleine Payloads und zustandsbehaftete Verbindungen optimale Performance.
- Der Speicherverbrauch auf dem Server ist gering, dennoch werden Hunderttausende gleichzeitige Verbindungen unterstützt.
- Wiederverwendbare Komponenten mit HEEx
- Es wurde ein deklaratives Komponentensystem eingeführt, das HTML-Validierung und Attributprüfungen zur Compile-Zeit bietet.
- Bei Komponentenaufrufen gibt es Compile-Time-Warnungen bei falsch verwendeten Attributen.
- Vereinfachte HEEx-Syntax
- Es wurde eine vereinfachte Syntax eingeführt, mit der sich Werte direkt im Tag-Body einfügen lassen.
- Interaktive Uploads
- Eine einzige Abstraktion für Datei-Uploads unterstützt sowohl direkte Uploads in die Cloud als auch direkte Uploads zum Server.
- Upload-Fortschritt kann abgebildet werden, und auch fortgeschrittene Dateioperationen lassen sich leicht umsetzen.
- Streams und asynchrone Verarbeitung
- Es wurden Stream-Primitiven eingeführt, um große Collections effizient zu verarbeiten.
- Zudem gibt es Funktionen, um asynchrone Aufgaben einfach zu verarbeiten und deren Ergebnisse zu rendern.
- LiveView wird Mainstream
- LiveView und .NET Blazor starteten etwa zur gleichen Zeit und trieben die Verbreitung dieses Programmiermodells voran.
- Auch Communities anderer Sprachen übernehmen dieses Modell auf unterschiedliche Weise.
- Ausblick
- Geplant sind unter anderem die Integration von JavaScript-Hooks, eine stärkere Integration von Web Components und die Unterstützung für Navigation Guards.
1 Kommentare
Hacker-News-Kommentare
Der Gründer von Phoenix beantwortet Fragen zu Elixir/Phoenix/LiveView und stellt dabei ein neues Installationsprogramm vor
|shLiveView ist eine Funktion, die die Grenzen von Rails überwunden hat, und begann anfangs als "Channels"-Funktion
Mit LiveView wurde ein Startup aufgebaut, das jedoch scheiterte
Es wurden mehrere produktive Apps mit LiveView gebaut; dafür ist eine WebSocket-Verbindung nötig, aber es gibt viele Vorteile
Durch LiveView wurde die Leidenschaft für Webentwicklung wiederentdeckt, und die Produktivität ist sehr hoch
In typischen Web-Apps sind die Abstimmungskosten zwischen Frontend- und Backend-Entwicklern am teuersten
LiveView wird seit 2019 verwendet, und die Entwicklung damit machte Spaß
Im Blog wurde eine Meinung zum Release von LiveView 1.0 veröffentlicht
Es besteht Interesse an Meinungen zu den Trade-offs zwischen LiveView und der Einführung von JS-basierten Technologien
LiveView bietet eine sehr produktive Entwicklungserfahrung, doch Probleme bei instabilen Verbindungen sollten gelöst werden