La combinación de LiveView y Svelte
- LiveView ofrece una forma única de construir aplicaciones web.
- El servidor mantiene el estado, maneja desde el backend el comportamiento del frontend y actualiza el DOM de forma gradual.
- La complejidad de las SPA proviene de la complejidad de los sistemas distribuidos, y LiveView ofrece una experiencia de cliente rica sin microservicios de frontend.
Lo difícil de LiveView
- El estado del lado del cliente es inevitable, y la latencia entre el servidor y el usuario no se puede evitar.
- LiveView hace que el servidor se encargue de muchos cambios del DOM, pero no puede controlarlo todo.
- LiveView tiene tres tipos de componentes: LiveViews, LiveComponents y Components.
- Refactorizar entre LiveView y LiveComponents es más engorroso de lo esperado.
La dirección ambigua de LiveView
- LiveView a menudo da la sensación de que le falta algo.
- LiveView tiene mucho en común con los frameworks modernos de frontend, pero hay que reconocer sus diferencias y abordar los problemas de otra manera.
LiveView + Svelte
- LiveSvelte permite renderizar componentes de Svelte dentro de LiveView.
- El backend controla las props de los componentes del frontend, y tanto el frontend como el backend tienen estado.
- Existe un canal de comunicación privado y bidireccional entre el frontend y el backend.
Las características innovadoras de LiveSvelte
- La división de responsabilidades entre backend y frontend es clara, y la complejidad se concentra del lado del servidor.
- LiveView brilla más como frontend para el backend, ya que ofrece procesos de backend que renderizan componentes de frontend y mantienen el estado.
La opinión de GN⁺
- La combinación de LiveView y Svelte separa de forma eficiente la gestión del estado entre servidor y cliente, y permite a los desarrolladores construir aplicaciones de manera más rápida e intuitiva.
- Esta tecnología puede ser especialmente útil para aplicaciones web donde la interacción en tiempo real es importante, y puede contribuir a mejorar la experiencia de usuario.
- Sin embargo, como la latencia con el servidor puede afectar la experiencia de usuario, la optimización del rendimiento y la ubicación regional de los servidores pueden ser factores importantes a considerar.
- La combinación de LiveView y Svelte presenta un nuevo paradigma para los desarrolladores acostumbrados al desarrollo tradicional de SPA, con el potencial de reducir la curva de aprendizaje y mejorar la eficiencia del desarrollo.
- La sincronización de estado en tiempo real y la comunicación bidireccional que ofrece esta tecnología pueden convertirla en una opción atractiva, especialmente para herramientas colaborativas, dashboards o aplicaciones que manejan datos en tiempo real.
1 comentarios
Opiniones de Hacker News
Uno de los patrones usados en videojuegos multijugador es que existe código que se ejecuta básicamente tanto en el cliente como en el servidor.
Dio una charla en ElixirConf 2022 sobre cómo combinar LiveView y Svelte, y los contribuidores de live_svelte ayudaron a hacerlo realidad.
Cuando entra una fila nueva, LiveView actualiza al cliente, así que basta con hacer push a la tabla.
En BeaconCMS usan Svelte y LiveView juntos.
En lugar de manejar el estado en el cliente, se maneja tanto en el cliente como en el servidor.
La limitación de este enfoque está en la velocidad de la luz: hay un límite a qué tan cerca puede estar el servidor del usuario.
Como creador de LiveSvelte, dice que le avisen si tienen preguntas.
En general, siempre quiso construir apps con este modelo: orientadas a eventos, actualizaciones bidireccionales en tiempo real con servidor, eventos ordenados, estado local y remoto...
En su app usa controladores reutilizables de Stimulus junto con LiveView, y esto también funciona sin fricción.
¡Gran proyecto! Acaba de publicar un episodio de Svelte Radio sobre esto.