@react_js

Страница 2309 из 5115
Max
13.10.2017
10:57:23
во

я поясню мысль совы

во фронте у тебя во время выполнения какой-то реакции на действие юзера

например фетч данных

Google
Max
13.10.2017
10:58:02
у тебя может еще что-то прилететь

на беке у тебя реквест единажды прилетает

ты конечно можешь его обработать как угодно с параллелизмом, асинком и прочим

Алексей
13.10.2017
10:58:29
на бэке же тоже самое

один реквест не завершился

уже другой прилетает

Max
13.10.2017
10:58:50
а у тебя тред другой

Алексей
13.10.2017
10:58:58
нет не другой

тред один

нода же

Max
13.10.2017
10:59:10
ну процесс другой

какая разница )

Алексей
13.10.2017
10:59:13
другая корутина фактически

Google
Алексей
13.10.2017
10:59:18
процесс тоже один

запущенных async функций куча

Max
13.10.2017
10:59:45
ну им то похуй на то что в фоне работает?

Алексей
13.10.2017
10:59:52
нет

Max
13.10.2017
10:59:56
давай пример

Evgeniy
13.10.2017
10:59:58
Попахивает бессмысленным холиваром.

Алексей
13.10.2017
11:00:08
потому что они иногда работают с теми же данными, что и соседние корутины

Max
13.10.2017
11:00:16
роу-левел-лок

?

если это критично

Сергей
13.10.2017
11:00:28
на бэке же тоже самое
Представь у тебя есть let a = {} Тебе прилетел один запрос который его меняет после получения данных И пока первый ждет данные, прилетает второй который сразу же его меняет. Прилетает ответ от запроса на первый, у него два варианта: Опираться на старые данные, но тогда он перетрет новые данные Или же опираться на новые данные, но тогда придется заново делать запрос так как предыдущие данные не актуальны

Алексей
13.10.2017
11:01:19
давай пример
Один клиент добавляет запись, другой читает все записи. Эти действия могут происходить одновременно, а могут и не происходить.

Max
13.10.2017
11:01:30
транзакции

на фронте это руками решать приходится

Алексей
13.10.2017
11:01:43
на фронте это руками решать приходится
на фронте это просто булевские переменные к примеру

Сергей
13.10.2017
11:03:55
Enjoy the
13.10.2017
11:05:41
А чат по скале есть?

Artem
13.10.2017
11:05:58
есть

Enjoy the
13.10.2017
11:06:05
Нашел

Google
Enjoy the
13.10.2017
11:06:07
Пасиба

Алексей
13.10.2017
11:08:11
Есть стейт, который отличается от базы тем, что полностью висит в памяти, доступен весь сразу, и две корутины обращающиеся к одному стейту не могут получить неконсистентное состояние.

Алексей
13.10.2017
11:09:15
На бэке две корутины (или два потока к примеру) могут получить одну и ту же запись из базы данных в немного разное время и фактически получить разные данные.

Сергей
13.10.2017
11:09:33
Нет базы данных

Че ты гонишь

Объект

Обычный жс объект

Сергей
13.10.2017
11:10:15
Представь у тебя есть let a = {} Тебе прилетел один запрос который его меняет после получения данных И пока первый ждет данные, прилетает второй который сразу же его меняет. Прилетает ответ от запроса на первый, у него два варианта: Опираться на старые данные, но тогда он перетрет новые данные Или же опираться на новые данные, но тогда придется заново делать запрос так как предыдущие данные не актуальны

Только это

Google
Admin
ERROR: S client not available

Сергей
13.10.2017
11:10:34
И два хэндлера на экспрессе

Не выдумывай лишнего

Реши задачу

Или что без корутин и базы никак?

Именно поэтому ридакс, фп и иммутабельность

Алексей
13.10.2017
11:14:24
Что значит "решить задачу"? Где в этой задачи вопрос? Где знак вопроса? Если я правильно понимаю, то я бы посылал самые свежие данные из объекта a

Алексей
13.10.2017
11:16:12
Можно отправить ещё один запрос на получение самых свежих данных, но опять же нет гарантий, что объект опять не изменится в этот момент. И мутабельность/иммутабельность тут не поможет.

Сергей
13.10.2017
11:17:59
Алексей
13.10.2017
11:18:21
last write wins

вполне рабочая стратегия для таких случаев

Сергей
13.10.2017
11:19:11
Можно отправить ещё один запрос на получение самых свежих данных, но опять же нет гарантий, что объект опять не изменится в этот момент. И мутабельность/иммутабельность тут не поможет.
Изучи фп. А вообще @zerobias умеет отправлять сообщения в прошлое и будущее жизни приложения. И это как один из вариантов решения. А из существенно больше

вполне рабочая стратегия для таких случаев
Так себе стратегия когда юзер делает много действий

Терять данные нельзя

Алексей
13.10.2017
11:20:12
Ааа, так вы хотите что-то наподобие CRDT

ну это знаете ли довольно интересная задача, явно выходит за рамки обычного фронтенда/бэкенда

Google
Сергей
13.10.2017
11:22:07
на фронте

вот каждый раз когда делаешь запрос к бэку

кто-то даже подсчитывает количество запросов к определенной ручке

Алексей
13.10.2017
11:22:56
Самое простое решение: last write wins

Алексей
13.10.2017
11:23:19
И в большинстве случаев самое правильное

Сергей
13.10.2017
11:24:00
Vladyslav
13.10.2017
11:25:57
а откуда святая уверенность что фп прям жизненно-важен ? чот дичь прям совсем.

Страница 2309 из 5115