Денис Яремов "Offline-first приложение на Reflex"
-
Upload
fwdays -
Category
Technology
-
view
345 -
download
6
Transcript of Денис Яремов "Offline-first приложение на Reflex"
![Page 1: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/1.jpg)
1Reflex - offline first for human beings
Offline-first приложение на ReflexДокладчик: Денис Яремов
![Page 2: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/2.jpg)
2Reflex - offline first for human beings
OFFLINE-FIRST
Как я к этому пришел?
![Page 3: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/3.jpg)
3Reflex - offline first for human beings
OFFLINE ОДНИМ СЛОВОМ
БОЛЬ
![Page 4: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/4.jpg)
4Reflex - offline first for human beings
ShareJS
Redux
DiffSync
![Page 5: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/5.jpg)
5Reflex - offline first for human beings
CAP
![Page 6: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/6.jpg)
6Reflex - offline first for human beings
OFFLINE И ФИЗИКА
Все клиенты видят одно (общее)
состояние данных
Каждый клиентможет всегда читать и писать данные
Система работает хорошо, не смотря на физическое деление сети
![Page 7: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/7.jpg)
7Reflex - offline first for human beings
C – A – P
C + A + P < 3
![Page 8: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/8.jpg)
8Reflex - offline first for human beings
C – A – P И ВОСПРИЯТИЕ
Eventual consistency = ½ consistency
![Page 9: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/9.jpg)
9Reflex - offline first for human beings
C – A – P И ВОСПРИЯТИЕ
Eventual availability?
![Page 10: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/10.jpg)
10Reflex - offline first for human beings
OFFLINE И ФИЗИКА
Все клиенты видят одно (общее)
состояние данных
Каждый клиентможет всегда читать и писать данные
Система работает хорошо, не смотря на физическое деление сети
![Page 11: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/11.jpg)
11Reflex - offline first for human beings
C – A – P И ВОСПРИЯТИЕ
Eventual availability = ½ availability
![Page 12: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/12.jpg)
12Reflex - offline first for human beings
C – A – P И ВОСПРИЯТИЕ
½ C + ½ A + P = ?
![Page 13: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/13.jpg)
ReflexМетодология для создания интерактивных
offline-first приложений
![Page 14: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/14.jpg)
14Reflex - offline first for human beings
ЧТО ТАКОЕ REFLEX?
Методология
![Page 15: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/15.jpg)
15Reflex - offline first for human beings
В ЧЕМ УНИКАЛЬНОСТЬ REFLEX?
• Любой клиент• Любой backend• Любая* база данных• Любая поддерживающая технология
![Page 16: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/16.jpg)
16Reflex - offline first for human beings
КАК УСТРОЕН REFLEX?
![Page 17: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/17.jpg)
17Reflex - offline first for human beings
КАК ДАННЫЕ ХРАНЯТСЯ И ИСПОЛЬЗУЮТСЯ?
?
![Page 18: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/18.jpg)
18Reflex - offline first for human beings
КАК ДАННЫЕ ХРАНЯТСЯ И ИСПОЛЬЗУЮТСЯ?
![Page 19: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/19.jpg)
19Reflex - offline first for human beings
КАК ПРОИСХОДИТ ОБМЕН ДАННЫМИ?
?
Client-side storage
Partial database
replica
![Page 20: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/20.jpg)
20Reflex - offline first for human beings
КАК ПРОИСХОДИТ ОБМЕН ДАННЫМИ?
![Page 21: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/21.jpg)
21Reflex - offline first for human beings
КАК ИДЕНТИФИЦИРОВАТЬ ДАННЫЕ ПОЛЬЗОВАТЕЛЯ?
Обратный HTTP
Простая выборка
Client-side storage
Partial database
replica
?
![Page 22: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/22.jpg)
22Reflex - offline first for human beings
КАК ИДЕНТИФИЦИРОВАТЬ ДАННЫЕ ПОЛЬЗОВАТЕЛЯ?
![Page 23: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/23.jpg)
23Reflex - offline first for human beings
КАК РАБОТАТЬ С ДАННЫМИ?
Обратный HTTP
Простая выборка
Client-side storage
Partial database
replicaPermissions
?
![Page 24: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/24.jpg)
24Reflex - offline first for human beings
КАК РАБОТАТЬ С ДАННЫМИ?
![Page 25: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/25.jpg)
25Reflex - offline first for human beings
КАК ПРОИСХОДИТ ОБРАБОТКА КОНФЛИКТОВ?
Обратный HTTP
Простая выборка
Client-side storage
Partial database
replica
?Permissions
Полносвязный graph
данных на клиенте
![Page 26: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/26.jpg)
26Reflex - offline first for human beings
КАК ПРОИСХОДИТ ОБРАБОТКА КОНФЛИКТОВ?
![Page 27: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/27.jpg)
27Reflex - offline first for human beings
КАК ПРОИСХОДИТ ОБРАБОТКА КОНФЛИКТОВ?
![Page 28: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/28.jpg)
28Reflex - offline first for human beings
КОНФЛИКТЫ – ИНОГДА ЭТО ХОРОШО
![Page 29: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/29.jpg)
29Reflex - offline first for human beings
КОНФЛИКТЫ – ИНОГДА ЭТО ХОРОШО
![Page 30: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/30.jpg)
30Reflex - offline first for human beings
GET LATEST
![Page 31: Денис Яремов "Offline-first приложение на Reflex"](https://reader035.fdocument.pub/reader035/viewer/2022062522/58a1004a1a28abbf248b64b9/html5/thumbnails/31.jpg)
31Reflex - offline first for human beings
КАК ЭТО ВЫГЛЯДИТ ВЖИВУЮ
Обратный HTTP
Простая выборка
Client-side storage
Partial database
replica
Мультиверсионность
Permissions
Полносвязный graph
данных на клиенте