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

Привет. интересен ваш опыт, кто-то выделяет апи запросы в отдельные

сервисы? я например использую redux и все запросы к апи пишу в экшенах, это нормальный подход? а как вы делаете?

74 ответов

13 просмотров

Экшен объект в нем ничего нельзя писать)

Frank 🦠- Автор вопроса

Будешь рефакторить - будет тяжко)

Frank 🦠- Автор вопроса
Frank 🦠- Автор вопроса

redux saga 😍

Frank 🦠
если точнее, то в thunk

я думал этот подход устарел ещё в 2017 🤔

Frank 🦠
а ты как делаешь?

В отдельные сервисы, каждый сервис - класс, который наследует общий класс с настроенным axios instance, каждый метод сервиса - отдельный запрос на апи. Ну и дальше можно вызывать их с помощью thunk, например

Frank 🦠- Автор вопроса
Пользователь 61005
Тоесть на thunk не стоит тратить время?

нормальный подход thunk, не надо слушать кого попало

Evgeniy 🍀
а какой тут профит от классов?

думаю, чисто вкусовщина. можно кучку функций экспортировать

Evgeniy 🍀
а какой тут профит от классов?

В сравнении с импортом функций - вкусовщина, можно и испортить инстанс в каждую функцию

Roman Usherenko
нормальный подход thunk, не надо слушать кого попа...

это неидиоматично. сложно отличить санки от нормальных экшенов - увеличивается энтропия и снижается чистота кода + сложности с обработкой ошибок

Evgeniy 🍀
это неидиоматично. сложно отличить санки от норма...

энтропия - это субъективно а что с обработкой ошибок?

Evgeniy 🍀
это неидиоматично. сложно отличить санки от норма...

Из санок можно asyncCreator сделать, тогда вполне отличить можно)

Roman Usherenko
энтропия - это субъективно а что с обработкой оши...

энтропия вполне себе измерима и объективна если неправильно обработать промис внутри thunk, можно ловить ошибки из рендера, что вообще не является очевидным 😅 с использованием саг стрелять себе в ногу куда сложнее, кроме того они полезны и сами по себе, а не только для работы в связке с редаксом

Evgeniy 🍀
энтропия вполне себе измерима и объективна если не...

возможно, возможно. я бы однако все равно не сказал бы, что санки - 2017 и их больше не используют. используют еще как

Frank 🦠- Автор вопроса
Evgeniy 🍀
энтропия вполне себе измерима и объективна если не...

а что скажешь по поводу mobx? лучше редакс + сага или мобх?

Frank 🦠
а что скажешь по поводу mobx? лучше редакс + сага ...

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

Frank 🦠- Автор вопроса
Evgeniy 🍀
ничего не могу сказать, я с ним не работал, не оче...

а вот на хабре под любым топиком с разбором редакса пишут выкинуть редакс и использовать мобх и будет тебе счастье

Frank 🦠
а вот на хабре под любым топиком с разбором редакс...

не будет. говнокод не зависит от используемого store engine

Evgeniy 🍀
не будет. говнокод не зависит от используемого sto...

а растущая сложность разработки оченб даже зависит

Dmitry
а растущая сложность разработки оченб даже зависит

великая сила влечет за собой великую ответственность) редакс напрямую не привносит дополнительных сложностей пиши чистые и минималистичные коннекты, ликвидруй бойлерплейт засчет хэлперов и фабрик редьюсеров - и будет тебе счастье. с мобх много неявного и плохо контролируеммого -> говнокодить проще)

Evgeniy 🍀
великая сила влечет за собой великую ответственнос...

редакс максимально не гибкий шаг не туда и все и проблемы имеет всем известные (или нет) я не пишу ни на том ни на том благо есть выбор

Evgeniy 🍀
великая сила влечет за собой великую ответственнос...

Не могу понять почему продолжают так упорно сравнивать эти два максимально примитивных стейт менеджера) 2021 год уже, сколько можно, уже все должны были вдоль и поперек все перепробовать

Тимофей 🛴
Не могу понять почему продолжают так упорно сравни...

правильно, пора бы уже выбрать эффектор и забыть про срач)

Тимофей 🛴
Не могу понять почему продолжают так упорно сравни...

потому что написал говна и легаси и в цеились без возможности переписать пишут плачут и впрягаются

Evgeniy 🍀
правильно, пора бы уже выбрать эффектор и забыть п...

вот да после него и не хочется писать на другом после возможности комбинировать свзяи как угодно + не ломать переписывая логику

Frank 🦠
а ты что предпочитаешь?

Я предпочитаю хорошо покушать

Dmitry
вот да после него и не хочется писать на другом по...

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

Evgeniy 🍀
есть одна штука с легаси и редаксом - на редакс мо...

Эффектор кстати родился из миддлвары redux most )

Тимофей 🛴
Не могу понять почему продолжают так упорно сравни...

Я вот кстати недавно похожим вопросом задавался Типо какой стейт менеджер взять в стек, чтобы было не заебно работать с ним и поддерживать потом Остановился всё-таки на редаксе, потому что его комьюнити заездило просто до дыр. Очень очково будет если в каком-нибудь эффекторе не окажется какой-то нужной привычной херни, я уже и не говорю про остальные стейт менеджеры И в 2021 их развелось так много, я только на память могу сказать штук 5-6 Выбор между всякими jotai, recoil и прочими видится как выбор между сортами говна Хотелось бы какой-то готовый ответ видеть, типо «бери это и не парься, всё будет збс»

Egor Pishchalnikov
Я вот кстати недавно похожим вопросом задавался Ти...

Не совсем понятно как чего то может не оказаться в эффекторе, если в редаксе вообще нихрена нет, вся экосистема тыща мидллвар для работы с асинхроном и утилиты для минимизации бойлерплейта

Тимофей 🛴
Не совсем понятно как чего то может не оказаться в...

На счет экосистемы редакса согласен, да, просто гора разных миддлварей пытающихся решить одну и ту же проблему Но в целом мне кажется что у редакса все основные сущности для управления стором вполне неплохо определены, хоть и код говно получается И всё-таки, какой стейт менеджер считать дефолтным в 2021? Ну типо чтоб вот брать и не париться? (Спрашиваю потому что уже поменьше слежу за этим зоопарком, ибо требует усилий и времени)

Egor Pishchalnikov
На счет экосистемы редакса согласен, да, просто го...

для начала ответь себе на вопрос для чего тебе нужен стейт менеджер и если ответ окажется на 80% для того чтоб хендлить асинхронные данные с сервера - смотри на react-query / SWR другие фетчилки с кешем и ручками для управления кешем

Andrey ⚪️🔵⚪️
для начала ответь себе на вопрос для чего тебе нуж...

Ух ты, спасибо На самом деле у меня стейт менеджер юзается для того чтобы данные разросшегося приложения подключать в самых разных местах этого самого приложения Ну и без адекватной обработки асинхронщины никуда конечно Про react-query слышал, да. Он актуален еще? Про swr впервые слышу

Egor Pishchalnikov
На счет экосистемы редакса согласен, да, просто го...

Effector отлично работает с простыми и сложными приложениями

Тимофей 🛴
Все эти либы херня)

"эффектор херня") Пруфов так же не будет))

Andrey ⚪️🔵⚪️
для начала ответь себе на вопрос для чего тебе нуж...

А что за «фетчилки с кешем»? Что имелось ввиду, не понял?

Egor Pishchalnikov
Ух ты, спасибо На самом деле у меня стейт менеджер...

актуален, версии выходят реакт квери нравится, https://swr.vercel.app/ аналог не не пользовался

Тимофей 🛴
Все эти либы херня)

Вот подобные ответы и заставляют задумываться каждый раз Но походу надо реально в сторону эффектора смотреть

Egor Pishchalnikov
А что за «фетчилки с кешем»? Что имелось ввиду, не...

это не стейт менеджеры, это кешилки для сетевых ответов, по идеологии работы похоже на гкл клиенты которые хранят свой кеш для сетевых ответов, но более генерализованно для любых данных

Andrey ⚪️🔵⚪️
это не стейт менеджеры, это кешилки для сетевых от...

А зачем вообще кешировать те же промисы? Ну просто это же практически всегда XHR-запросы, то есть ajax Ну то есть какие-то динамические данные полученные с бэка например, а не статика

Volodymyr Klimov
"эффектор херня") Пруфов так же не будет))

Это мнение какие пруфы? Сто раз уже приводил аргументы и не я один, теперь уже лень. А ты врядли найдешь аргументы про свое утверждение)

Egor Pishchalnikov
А зачем вообще кешировать те же промисы? Ну просто...

очень долго обьяснять, посмотри плс примеры в документации если совсем в пяти словах в useQuery передается какая то асинк функция (аксиос, фетч, что угодно), и строковой ключ Хук ее вызывает, ответ отправляет в свой кеш по ключу. На следуйщий вызов хука он достанет данные из кеша и не пойдет в сеть

Тимофей 🛴
Это мнение какие пруфы? Сто раз уже приводил аргум...

Я и не собираюсь ничего искать, это такой же пример "выброса". В основном все аргументы - список абстрактных сферических коней в вакууме Зато безапеляционных вбросов - полно вообще) У этих либ есть недостатки, но и преимуществ вагон

Andrey ⚪️🔵⚪️
очень долго обьяснять, посмотри плс примеры в доку...

Так это как раз понятно, не понятно только зачем кэшировать эти данные если они (почти) всегда разные будут

Egor Pishchalnikov
Так это как раз понятно, не понятно только зачем к...

у тебя может быть несколько вызово хука в разных частях приложения

Volodymyr Klimov
Я и не собираюсь ничего искать, это такой же приме...

Но недостатки фундаментальные так сказать) и работают они хорошо в строго в ограниченных кейсах. Так что называть их альтернативой стейт менеджеру неправильно

Тимофей 🛴
Что бы каждый рендер не запрашивать

Но ведь это странно, потому что данные (особенно полученные по сети) могли обновиться даже между ререндерами

Egor Pishchalnikov
Но ведь это странно, потому что данные (особенно п...

Да просто попробуй блин) понятнее будет чем тебе тут объяснять будут

Egor Pishchalnikov
Но ведь это странно, потому что данные (особенно п...

оно не на столько влоб работает, там есть и время жизни кеша, и ручки для ручной инвалидации

Egor Pishchalnikov
Но ведь это странно, потому что данные (особенно п...

И что?) Если нет работы с данными в реальном времени, они могли обновиться когда угодно и вы об этом узнаете только когда спросите

Volodymyr Klimov
И что?) Если нет работы с данными в реальном време...

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

Egor Pishchalnikov
Ааааааа, походу я понял, этот кэш только в рамках ...

Там сложная система с инвалидацией и обновлениями

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
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
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта