Sortie de Phoenix LiveView 1.0.0
(phoenixframework.org)- Premier jalon 1.0 atteint 6 ans après le premier commit
- Origine et raison d’être de LiveView
- LiveView a été lancé pour créer des applications rendues côté serveur sans JavaScript.
- Il permet de résoudre simplement des problèmes complexes comme la validation de formulaires en temps réel, la mise à jour de la quantité dans un panier ou les mises à jour en streaming en temps réel.
- Elixir et Phoenix sont particulièrement adaptés à cette approche.
- Avantages d’une base en temps réel
- En fournissant à tous les utilisateurs et à toutes les interfaces une base bidirectionnelle en temps réel, LiveView permet aux développeurs de se concentrer sur l’implémentation des fonctionnalités.
- Avec Elixir, il devient possible de réaliser des fonctionnalités impossibles sur d’autres plateformes.
- Implémentation initiale de LiveView
- À l’image de React, il implémente une UI côté serveur qui se met à jour automatiquement lorsque l’état change.
- Grâce à Phoenix Channels, il peut prendre en charge des millions de connexions.
- Optimisation du modèle de programmation
- Le moteur distinctif de LiveView n’exécute que les parties dynamiques des templates et n’envoie qu’un minimum de données.
- La séparation entre parties statiques et dynamiques permet des mises à jour efficaces.
- Latence de tout premier plan
- LiveView offre des performances optimales grâce à de petites charges utiles et à des connexions persistantes avec état.
- L’utilisation mémoire côté serveur reste faible tout en permettant de prendre en charge des centaines de milliers de connexions simultanées.
- Composants réutilisables avec HEEx
- Un système de composants déclaratifs a été introduit, avec validation HTML et vérification des attributs à la compilation.
- Lors de l’appel de composants, des avertissements à la compilation signalent l’utilisation d’attributs incorrects.
- Simplification de la syntaxe HEEx
- Une syntaxe simplifiée a été introduite pour insérer directement des valeurs dans le corps des balises.
- Uploads interactifs
- Une abstraction unique pour l’upload de fichiers permet de prendre en charge les uploads directs vers le cloud comme vers le serveur.
- Il devient facile de refléter la progression des uploads ou d’implémenter des opérations avancées sur les fichiers.
- Streams et traitement asynchrone
- Des primitives de stream ont été introduites pour traiter efficacement de grandes collections.
- Des fonctionnalités permettent de gérer facilement les tâches asynchrones et d’en afficher les résultats.
- LiveView entre dans le mainstream
- LiveView et .NET Blazor ont démarré à peu près à la même période et ont favorisé l’adoption de ce modèle de programmation.
- D’autres communautés de langages adoptent également ce modèle de différentes manières.
- Plans pour la suite
- Sont prévus l’intégration des hooks JavaScript, un renforcement de l’intégration des Web Components et la prise en charge des navigation guards.
1 commentaires
Commentaires sur Hacker News
Le créateur de Phoenix répond à des questions sur Elixir/Phoenix/LiveView et présente un nouvel installateur
|shest également proposéLiveView est une fonctionnalité née pour dépasser les limites de Rails, et a d’abord commencé comme une fonction de « channel »
Une startup a été construite avec LiveView, mais a échoué
Plusieurs applications de production ont été développées avec LiveView, et même si une connexion WebSocket est nécessaire, il présente de nombreux avantages
LiveView a permis de retrouver l’enthousiasme pour le développement web, avec une productivité très élevée
Dans une application web typique, le coût de coordination entre développeurs frontend et backend est le plus élevé
LiveView est utilisé depuis 2019, et le développement avec cet outil a été agréable
Un billet de blog a été rédigé au sujet de la sortie de LiveView 1.0
Souhait d’entendre des avis sur les compromis liés à l’adoption de LiveView par rapport aux technologies basées sur JS
LiveView offre une expérience de développement très productive, mais il serait souhaitable qu’il résolve les problèmes rencontrés avec des connexions instables