La combinaison de LiveView et Svelte
- LiveView propose une manière unique de créer des applications web.
- Le serveur détient l’état, traite côté back-end le comportement du front-end et met à jour progressivement le DOM.
- La complexité des SPA vient de celle des systèmes distribués, et LiveView permet d’offrir une expérience client riche sans microservices front-end.
Les difficultés de LiveView
- L’état côté client est inévitable, et la latence entre le serveur et l’utilisateur ne peut pas être évitée.
- LiveView confie au serveur une grande partie des modifications du DOM, mais ne peut pas tout contrôler.
- LiveView dispose de trois types de composants : LiveViews, LiveComponents et Components.
- Le refactoring entre LiveView et LiveComponents est plus fastidieux que prévu.
L’orientation ambiguë de LiveView
- LiveView donne souvent l’impression qu’il lui manque quelque chose.
- LiveView partage beaucoup de points communs avec les frameworks front-end modernes, mais il faut comprendre ses différences et aborder les problèmes autrement.
LiveView + Svelte
- LiveSvelte permet de rendre des composants Svelte dans LiveView.
- Le back-end contrôle les props des composants front-end, et l’état existe à la fois côté front-end et côté back-end.
- Il existe un canal de communication privé et bidirectionnel entre le front-end et le back-end.
Les caractéristiques innovantes de LiveSvelte
- La répartition des responsabilités entre back-end et front-end est claire, et la complexité se concentre côté serveur.
- LiveView révèle tout son potentiel comme front-end du back-end, en fournissant un processus back-end qui rend les composants front-end et en maintient l’état.
L’avis de GN⁺
- La combinaison de LiveView et Svelte sépare efficacement la gestion de l’état entre serveur et client, et permet aux développeurs de créer des applications plus vite et plus intuitivement.
- Cette technologie peut être particulièrement utile pour les applications web où les interactions en temps réel sont essentielles, et peut contribuer à améliorer l’expérience utilisateur.
- Cependant, la latence avec le serveur peut affecter l’expérience utilisateur ; l’optimisation des performances et le déploiement de serveurs au plus près des utilisateurs deviennent donc des points importants.
- La combinaison de LiveView et Svelte propose un nouveau paradigme aux développeurs habitués à la manière classique de créer des SPA, avec le potentiel de réduire la courbe d’apprentissage et d’améliorer l’efficacité du développement.
- La synchronisation d’état en temps réel et la communication bidirectionnelle qu’offre cette technologie peuvent en faire un choix particulièrement attractif pour les outils collaboratifs, les tableaux de bord ou les applications qui traitent des données en temps réel.
1 commentaires
Avis Hacker News
L’un des schémas utilisés dans les jeux vidéo multijoueurs consiste à avoir du code qui s’exécute fondamentalement à la fois côté client et côté serveur.
J’ai fait une présentation à l’ElixirConf 2022 sur la manière de combiner LiveView et Svelte, et les contributeurs de live_svelte ont aidé à en faire une réalité.
Quand une nouvelle ligne arrive, LiveView met à jour le client, donc il suffit de la pousser dans le tableau.
Nous utilisons Svelte et LiveView ensemble dans BeaconCMS.
Au lieu de gérer l’état sur le client, on gère l’état à la fois sur le client et sur le serveur.
La limite de cette approche, c’est la vitesse de la lumière : il y a une limite à la proximité du serveur avec l’utilisateur.
Je suis la personne qui a créé LiveSvelte, donc n’hésitez pas si vous avez des questions.
De manière générale, c’est avec ce modèle que j’avais envie de construire des applis : orienté événements, mises à jour temps réel bidirectionnelles avec le serveur, événements ordonnés, état local et distant...
J’utilise dans mon application des contrôleurs Stimulus réutilisables avec LiveView, et cela fonctionne aussi sans accroc.
Super projet ! Nous venons justement de publier un épisode de Svelte Radio à ce sujet.