169 похожих чатов

Всем привет,какая по вашему мнению наилучшая практика в ситуации с

управлением данных в приложении,думаю что ситуация довольно стандартная ,у меня есть несколько компонент которые нуждаются в данных ,при загрузке одной из компонент я загрузил с API данные и храню из в стриме,если данные не меняються проблем как бы нет ,допустим я создал новый счёт данных и отправил на сераер ,вопрос такой как лучше поступить в момент когда нужно будет отобразить новые данные,делать запрос на сервер и получать обновленные данные или локально менять первичный набор данных и работать с ним?

11 ответов

16 просмотров

Сильно зависит от бизнеса, задачи, бэка и дизайна. Вообще есть две стратегии обновления данных - пессимистическая и оптимистическая. 1я - ожидание полной загрузки данных и в частности отказ от обновления их на фронте => стучимся на бэк если, например, изменили счет и все есть чтобы его мутировать. Плюсы - проста в реализации; тривиальная обработка результата запроса; простой дизайн; не напрягаешь бэк с обработкой их кухни на фронте. Минусы - постоянные запросы - постоянные ожидания. Крутящиеся спинеры, ездящие прогрессбары и мерцающие скелетоны, это все тут. 2я - принудительная выдача результата запроса и в частности мутация данных на фронте, без ожидания ответа на запрос. Плюсы - время ожидания пользователя существенно сокращается; пользователю кажется что все летает => пользователь счастлив=) Минусы - сравнительно с предыдущей сложна в реализации; вереница доп. обработок ошибок; в некоторых случаях необходим продуманный UI/UX; иногда приходится перенести на фронт то что было на бэке (порой из за того что они одеяло слишком перетянули) Если вы думаете стоит ли оптимистическую стратегию внедрять архитектурно, нужно прежде всего понимать каков это гемор. Если же местечково, для обновления счета например, то почему бы и да?!

Oleg-Livcha Автор вопроса
Andrey Fastovsky
Сильно зависит от бизнеса, задачи, бэка и дизайна....

Ого, огромное спасибо за исчерпывающий ответ,буду иметь в виду.

Доброго времени суток. Я только начинаю изучать Angular, и у меня вопрос возник...что значит хранить данные из api в стриме и что вообще такое стрим?

Oleg-Livcha Автор вопроса
Alex
Доброго времени суток. Я только начинаю изучать An...

Rxjs,reactive programming paradigm,погугли,тема довольно обширная но в целом упирается в использования асинхронных источников данных и их хранения

Oleg Livcha
Rxjs,reactive programming paradigm,погугли,тема до...

формулировка у чела такая, что ощущение, что он не в курсе, о чем вообще спрашивает

Alex
спасибо

только стримы не для хранения

Alex
Доброго времени суток. Я только начинаю изучать An...

Предполагаю, что имеется в виду кэширование ответа сервера в каком-нибудь shareReplay.

Oleg-Livcha Автор вопроса
Eugene Udalov 🇷🇺
только стримы не для хранения

Я храню Стэйт в стримах,придумал не сам ,есть такой дизайн

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта