- Reflect, Figma, Notion ve Google Sheets benzeri çok oyunculu web uygulamaları oluşturmak için yeni bir çerçevedir.
- Bu, istemci tarafı senkronizasyon çerçevesi Replicache'in gelişmiş bir sürümüdür ve çok oyunculu uygulama geliştirmeyi kolaylaştırmak için tamamen yönetilen bir sunucu ekler.
- Reflect artık ilk kez herkese açık olarak kullanılabiliyor.
- Bu çerçeve, işbirlikçi düzenlemede çakışma çözümü sorununu ele alır ve tüm kullanıcıların aynı içeriği görmesini, çakışmaların da doğal biçimde çözülmesini sağlar.
- Reflect, CRDTs (Conflict-Free Replicated Data Types) gibi web ekosisteminde popüler araçlardan farklı olarak, video oyun endüstrisinde yaygın olan Transactional Conflict Resolution tekniğini kullanır.
- Reflect'in kendine özgü avantajları ve farklılıkları, bu senkronizasyon motorunun çekirdeğindeki tasarım seçimlerinden kaynaklanır.
- Reflect, değişiklikleri uygulamak için
mutator adı verilen JavaScript fonksiyonlarını kullanır ve mutator çağrıldığında bir mutation record oluşturulur.
- Mutation'lar yerelde uygulanır ve sunucuya akıtılır; sunucu ise geliş zamanına göre mutation'ları doğrusal hale getirerek bir sonraki yetkili durumu üretir.
- Reflect, hızlı hareket eden uygulamaları işleyebilir ve önceki mutation'ların onayını beklerken yenilerini eklemeye devam eder.
- Bu çerçeve, geri sarma, fork ve branch oluşturmayı destekleyen hızlı bir veri deposuna ve gelen mutation'lara yetişebilen hızlı bir sunucu tarafı veri deposuna ihtiyaç duyar.
- Reflect'in yaklaşımı iyi genellenebilir; aritmetik işlemler, liste işlemleri ve üst düzey değişmezliklerin zorlanması gibi çeşitli görevler için uygundur.
- Reflect'in sunucusu yetkilidir; mutation sonuçlarını kendisi yeniden hesaplar ve tüm istemciler bu sonuçları görebilir.
- Bu sunucu otoritesi, ayrıntılı yetkilendirmeyi ve sunucuda başka kodların çalıştırılmasını mümkün kılar.
- Reflect ayrıca şema doğrulama ve migration gibi avantajlar da sunar.
- Reflect'in senkronizasyon stratejisi olan Transactional Conflict Resolution, basit, esnek ve güçlüdür; bu da onu çok oyunculu uygulamalar geliştirmek için iyi bir seçenek haline getirir.
1 yorum
Hacker News yorumu