Kombinasi LiveView dan Svelte
- LiveView menawarkan cara yang unik untuk membangun aplikasi web.
- Server menyimpan state, menangani perilaku frontend dari backend, dan memperbarui DOM secara bertahap.
- Kompleksitas SPA berasal dari kompleksitas sistem terdistribusi, dan LiveView menghadirkan pengalaman klien yang kaya tanpa microservice frontend.
Hal-hal yang membuat LiveView sulit
- State di sisi klien tidak dapat dihindari, dan latensi antara server dan pengguna juga tidak bisa dihindari.
- LiveView menangani banyak perubahan DOM di server, tetapi tidak bisa mengendalikan semuanya.
- LiveView memiliki tiga jenis komponen: LiveViews, LiveComponents, dan Components.
- Refactoring antara LiveView dan LiveComponents lebih merepotkan dari yang diperkirakan.
Arah LiveView yang ambigu
- LiveView sering memberi kesan bahwa ada sesuatu yang kurang.
- LiveView memiliki banyak kesamaan dengan framework frontend modern, tetapi perbedaannya perlu dipahami dan masalahnya harus didekati dengan cara yang berbeda.
LiveView + Svelte
- LiveSvelte memungkinkan komponen Svelte dirender di LiveView.
- Backend mengontrol props komponen frontend, dan baik frontend maupun backend sama-sama memiliki state.
- Ada kanal komunikasi privat dua arah antara frontend dan backend.
Karakteristik inovatif LiveSvelte
- Pembagian tanggung jawab antara backend dan frontend jelas, dan kompleksitas dipusatkan di sisi server.
- LiveView paling menonjol sebagai frontend untuk backend, dengan menyediakan proses backend yang merender komponen frontend dan mempertahankan state.
Pendapat GN⁺
- Kombinasi LiveView dan Svelte memisahkan pengelolaan state antara server dan klien secara efisien, serta memungkinkan developer membangun aplikasi dengan lebih cepat dan intuitif.
- Teknologi ini dapat sangat berguna terutama untuk aplikasi web yang menuntut interaksi real-time, dan dapat membantu meningkatkan pengalaman pengguna.
- Namun, karena latensi ke server dapat memengaruhi pengalaman pengguna, optimasi performa dan penempatan server secara regional bisa menjadi pertimbangan penting.
- Kombinasi LiveView dan Svelte menawarkan paradigma baru bagi developer yang sudah terbiasa dengan cara pengembangan SPA yang ada, dan ini berpotensi menurunkan learning curve serta meningkatkan efisiensi pengembangan.
- Sinkronisasi state real-time dan komunikasi dua arah yang ditawarkan teknologi ini dapat menjadi pilihan yang menarik terutama untuk alat kolaborasi, dashboard, atau aplikasi yang menangani data real-time.
1 komentar
Pendapat Hacker News
Salah satu pola yang digunakan dalam video game multipemain adalah adanya kode yang pada dasarnya berjalan baik di klien maupun di server.
Saya pernah memberikan presentasi di ElixirConf 2022 tentang cara menggabungkan LiveView dan Svelte, dan para kontributor live_svelte membantu mewujudkannya.
Saat baris baru masuk, LiveView akan memperbarui klien, jadi Anda cukup mendorongnya ke tabel.
Kami menggunakan Svelte dan LiveView bersama di BeaconCMS.
Alih-alih mengelola state di klien, pendekatan ini mengelola state baik di klien maupun di server.
Batasan pendekatan ini terletak pada kecepatan cahaya: ada batas seberapa dekat server bisa ditempatkan ke pengguna.
Sebagai orang yang membuat LiveSvelte, saya mempersilakan jika ada pertanyaan.
Secara umum, saya memang ingin membangun aplikasi dengan model seperti ini: berorientasi event, pembaruan real-time dua arah dan server, event berurutan, state lokal dan remote...
Saya menggunakan controller Stimulus yang dapat digunakan ulang bersama LiveView di aplikasi, dan ini juga bekerja dengan mulus.
Proyek yang keren! Saya baru saja merilis episode Svelte Radio tentang ini.