2 Punkte von GN⁺ 2024-12-04 | 1 Kommentare | Auf WhatsApp teilen
  • 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

 
GN⁺ 2024-12-04
Hacker-News-Kommentare
  • Der Gründer von Phoenix beantwortet Fragen zu Elixir/Phoenix/LiveView und stellt dabei ein neues Installationsprogramm vor

    • Das neue Installationsprogramm ermöglicht die Installation von Elixir- und Phoenix-Projekten mit einem einzigen Befehl
    • Es werden Installationsbefehle für macOS/Linux und Windows bereitgestellt
    • Es handelt sich um eine Erweiterung des offiziellen Elixir-Installationsprogramms
    • Es gibt auch eine Installationsanleitung ohne |sh
  • LiveView ist eine Funktion, die die Grenzen von Rails überwunden hat, und begann anfangs als "Channels"-Funktion

    • LiveView ließ sich nur schwer mit statischen Views integrieren, doch mit der Zeit wurde Code-Sharing möglich
    • Phoenix 1.7 führte neue Layouts und eine neue Philosophie ein und ist für die Entwicklung von Web-Apps innovativ
  • Mit LiveView wurde ein Startup aufgebaut, das jedoch scheiterte

    • Die Integration mit React verlief reibungslos, und auch die Anbindung komplexer Bibliotheken war kein Problem
    • Probleme, die in React bereits gelöst waren, mussten in LiveView von Grund auf neu gelöst werden
  • Es wurden mehrere produktive Apps mit LiveView gebaut; dafür ist eine WebSocket-Verbindung nötig, aber es gibt viele Vorteile

    • Code-Generierung steigert die Produktivität, und das Rendern des Frontends mit Elixir ist effizient
    • Über WebSocket lassen sich Echtzeitfunktionen leicht ergänzen
    • Wenn die Business-Logik in Contexts verbleibt, lässt sich eine API leicht bereitstellen
  • Durch LiveView wurde die Leidenschaft für Webentwicklung wiederentdeckt, und die Produktivität ist sehr hoch

    • Es werden Kurse zum Erlernen von LiveView angeboten, und es wird gehofft, dass mehr Menschen dieses Framework lernen
  • In typischen Web-Apps sind die Abstimmungskosten zwischen Frontend- und Backend-Entwicklern am teuersten

    • LiveView ignoriert dieses Problem und ermöglicht Full-Stack-Entwicklung
    • Mit weniger Entwicklern können mehr Funktionen bereitgestellt werden
  • LiveView wird seit 2019 verwendet, und die Entwicklung damit machte Spaß

    • Auf der ElixirConf EU wurde LiveView erstmals vorgestellt
  • 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

    • Es braucht eine Diskussion über die Vielzahl an JS-Bibliotheken und die Möglichkeit, AI-Technologien zu übernehmen
  • LiveView bietet eine sehr produktive Entwicklungserfahrung, doch Probleme bei instabilen Verbindungen sollten gelöst werden

    • Offline-Unterstützung ist schwierig, aber Unterstützung für instabile Verbindungen ist nötig