Çevrimdışı çalışan uygulama tasarlamak: Ağ kesildiğinde ne olacağını baştan düşünmek
En yaygın hata, her ekranı doğrudan sunucudan besleyip ağ yoksa boş ekran veya hata mesajı göstermek. Kullanıcı daha önce gördüğü veriyi tekrar göremiyor ve bu mantıksız geliyor.
Daha sağlam yaklaşım, yerel veritabanını tek doğruluk kaynağı yapmak. Ekran her zaman yerelden okuyor, sunucudan gelen veri yereli güncelliyor. Bağlantı yoksa kullanıcı son bilinen durumu görüyor ve uygulama çalışmaya devam ediyor.
Yazma tarafı daha zor. Kullanıcı çevrimdışıyken bir kayıt oluşturursa, bu işlemin kuyruğa alınıp bağlantı gelince gönderilmesi gerekiyor. Burada dikkat edilecek konular: aynı işlemin iki kez gönderilmemesi, çakışma durumunda hangi sürümün kazanacağı ve kullanıcıya bekleyen işlem olduğunun gösterilmesi.
Çakışma çözümü çoğu uygulamada son yazan kazanır kuralıyla hallediliyor ve çoğu senaryoda yeterli. İşbirliği içeren uygulamalarda ise daha dikkatli bir strateji gerekiyor.
Kullanıcıya durumu göstermek de tasarımın parçası. Bekleyen bir işlem varsa bunu belli etmek, sessizce arka planda tutmaktan daha güven verici.
Bu mimariyi sonradan eklemek çok zor, baştan kurmak gerekiyor.

@bananaman