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

Пытался понять в правильном ли месте я переключаю потоки (подразумеваю

withContext(Default) и viewModelScope.launch(Default)). Я запутался. Нашёл много проектов и мнений, но в итоге не нашёл единого способа. Поэтому хочу задать несколько вопросов:

1. Запуск UseCase'а на Default диспатчере является ответственность UseCase'a или ViewModel'и?
2. Допустимо ли указывать IO диспатчер прямо в репозитории? Почему?
3. Есть ли единый стандарт/best practice по поводу того где нужно переключать потоки?
4. Если единого способа нет и это зависит от проекта, то по каким критериям выбирать способ для моего проекта?

5 ответов

14 просмотров

Я считаю, что диспатчер должен указывать тот, кто лучше знает, на каком диспатчере надо делать работу. Если это репозиторий - он знает, что делает IO операции, и должен переключать диспатчер.

Дмитрий- Автор вопроса
Алексей Ершов
Я считаю, что диспатчер должен указывать тот, кто ...

А usecase, если он сортирует лист или шифрует данные. Получается он знает, что запускается дорогую операцию и нужно делать это на Default. Поэтому стоит прямо в UseCase'е указать этот диспатчер?

есть принцип проектирования, что suspend функции всегда должны быть main-safe. Т.е. любую suspend функцию должно быть безопасно вызывать из Main потока. Поэтмоу почему бы и не передать диспатчер в конструкторе UseCase?

Дмитрий- Автор вопроса
Alexey Illarionov
есть принцип проектирования, что suspend функции в...

Спасибо, на слышал про этот принцип. Читал такое про функции рума, но не про все suspend. Можно где-то подробнее этот принцип изучить?

Дмитрий
Спасибо, на слышал про этот принцип. Читал такое п...

Да много ссылок в гугле, где-то в официальной документации на developer.android.com про корутины было. Ещё я сейчас здесь смотрю https://elizarov.medium.com/blocking-threads-suspending-coroutines-d33e11bf4761 "Suspending convention"

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

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

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Карта сайта