Phoenix LiveView 1.0.0 リリース
(phoenixframework.org)- 最初のコミットから6年を経て、1.0マイルストーンを達成
- LiveViewの始まりとその理由
- LiveViewは、JavaScriptなしでサーバーレンダリングアプリケーションを構築するために始まった。
- リアルタイムのフォーム検証、ショッピングカート数量の更新、リアルタイムストリーミング更新など、複雑な問題をシンプルに解決できる。
- ElixirとPhoenixは、このアプローチに適している。
- リアルタイム基盤の利点
- すべてのユーザーとUIにリアルタイム双方向の基盤を提供し、開発者が機能実装に集中できるようにする。
- Elixirを通じて、他のプラットフォームでは不可能な機能を実装できる。
- LiveViewの初期実装
- Reactのように、状態変更時に自動でUIが更新されるサーバー基盤のUIを実装。
- Phoenix Channelsを使って数百万の接続をサポートできる。
- プログラミングモデルの最適化
- LiveViewの差別化されたエンジンは、テンプレートの動的部分だけを実行し、最小限のデータのみを送信する。
- 静的部分と動的部分を分離し、効率的な更新を可能にする。
- 最高水準のレイテンシ
- LiveViewは、小さなペイロードと状態保持接続を通じて最適な性能を提供する。
- サーバーメモリ使用量は少ないが、数十万の同時接続をサポートできる。
- HEExによる再利用可能なコンポーネント
- HTML検証とコンパイル時の属性チェックを提供する宣言的コンポーネントシステムを導入。
- コンポーネント呼び出し時に、誤った属性の使用に対してコンパイル時警告を提供する。
- HEEx構文の簡素化
- タグ本文内に値を直接挿入できる簡素化構文を導入。
- インタラクティブなアップロード
- ファイルアップロード向けの単一抽象化を提供し、クラウドおよびサーバーへの直接アップロードをサポート。
- アップロード進行状況の反映や高度なファイル操作を簡単に実装できる。
- ストリームと非同期処理
- 大規模コレクションを効率的に扱うためのストリームプリミティブを導入。
- 非同期タスクを簡単に処理し、その結果をレンダリングできる機能を提供する。
- LiveViewがメインストリームへ
- LiveViewと.NET Blazorは似た時期に始まり、このプログラミングモデルの採用を後押しした。
- 他の言語コミュニティでも、このモデルをさまざまな形で採用している。
- 今後の計画
- JavaScriptフック統合、Web Components統合の強化、ナビゲーションガード対応などを計画している。
1件のコメント
Hacker Newsの意見
Phoenixの創始者が Elixir/Phoenix/LiveView に関する質問を受け、新しいインストーラーを紹介
|shを使わないインストールガイドも提供LiveView は Rails の限界を乗り越える機能で、当初は「channels」機能として始まった
LiveView を使ってスタートアップを構築したが、失敗に終わった
LiveView を使った本番アプリを複数構築しており、WebSocket 接続は必要だが多くの利点がある
LiveView を使って Web 開発への情熱を取り戻し、生産性も非常に高い
典型的な Web アプリでは、フロントエンドとバックエンドの開発者間の調整コストが最も高い
2019年から LiveView を使っており、開発は楽しかった
LiveView 1.0 リリースについての意見をブログに書いた
LiveView と JS ベース技術の採用におけるトレードオフについて意見を聞きたい
LiveView は非常に生産的な開発体験を提供するが、不安定な接続時の問題を解決してほしい