Size: a a a

2020 November 26

АГ

Алексей Гладков... in Kotlin Native
Хотя с другой стороны сам факт переключения никак не вредит, а тут получается доп страховка
источник

АГ

Алексей Гладков... in Kotlin Native
Особенно для новичков, которые еще плохо понимают, что они делают
источник

AI

Arkadii Ivanov in Kotlin Native
Алексей Гладков
Ну то есть ты должен понимать фреймворк прям до глубины, чтоб знать, что здесь все ок можно не переключать поток
Наоборот не надо. При вызове suspend функции (подписке на рх), не надо думать об этом. Это задача вызываемого кода
источник

АГ

Алексей Гладков... in Kotlin Native
Ты же не знаешь грубо говоря оно внутри это обрабатывает или нет )
источник

АГ

Алексей Гладков... in Kotlin Native
И если нет, то ты получишь те же самые фризы и проблемы
источник

AI

Arkadii Ivanov in Kotlin Native
Если есть suspend fun saveToDatabase(), можно смело вызывать просто так, хоть на главном потоке.
источник

АГ

Алексей Гладков... in Kotlin Native
поэтому страхуясь ты все равно переключаешь поток
источник

AP

Alexey Pushkarev in Kotlin Native
Arkadii Ivanov
Вроде я как раз наоборот говорю
А, сори тогда. Ну как по мне тогда удобнее наоборот. Так точно понимаешь потоки исполнения. А иначе я вот откуда знаю что там ktor переключает... Кажется лучше это давать на откуп вызывающей стороны.
источник

AI

Arkadii Ivanov in Kotlin Native
Алексей Гладков
Ты же не знаешь грубо говоря оно внутри это обрабатывает или нет )
Должно по контракту, потому что suspend
источник

AI

Arkadii Ivanov in Kotlin Native
Только если руки не кривые)
источник

АГ

Алексей Гладков... in Kotlin Native
Ну с suspend все понятнее, потому что здесь ключевое слово есть )
источник

AP

Alexey Pushkarev in Kotlin Native
Arkadii Ivanov
Только если руки не кривые)
Ничто и никто не идеален, всякое бывает =)
источник

AM

Andrew Mikhaylov in Kotlin Native
Alexey Pushkarev
А, сори тогда. Ну как по мне тогда удобнее наоборот. Так точно понимаешь потоки исполнения. А иначе я вот откуда знаю что там ktor переключает... Кажется лучше это давать на откуп вызывающей стороны.
Тут как раз фишка в том, что переключение на пул IO, грубо говоря, надо тогда, когда ты знаешь, что будешь щас блокирующую IO-операцию делать. А это по сути деталь реализации твоего сетевого слоя. Вызывающему коду должно быть глубоко фиолетово, блокирующий у тебя в сетевом слое ввод-вывод или нет
источник

KZ

Konstantin Zolotov in Kotlin Native
Алексей Гладков
Вот хз, мне всегда этот подход не нравился. Я люблю, когда код работает explicit, а не сиди гадай переключается оно там или не переключается)
+1, а то как полцчится, что room rx adapter свой thread pool создает, хотя я с радостью бы заюзал тот, что у меня уже ест. Или какой-нибудь recyclerview adapter с diff callback сам работает хрен-пойми-как
источник

AP

Alexey Pushkarev in Kotlin Native
Лучше наверно иметь возможность задать  хочешь ты или нет чтобы оно само управляло потоком исполнения.
источник

АГ

Алексей Гладков... in Kotlin Native
Andrew Mikhaylov
Тут как раз фишка в том, что переключение на пул IO, грубо говоря, надо тогда, когда ты знаешь, что будешь щас блокирующую IO-операцию делать. А это по сути деталь реализации твоего сетевого слоя. Вызывающему коду должно быть глубоко фиолетово, блокирующий у тебя в сетевом слое ввод-вывод или нет
Вот и получается, что ты делаешь переключение, а потом еще внутри переключение делается)
источник

AP

Alexey Pushkarev in Kotlin Native
Ну это а то как старые апи клиенты на колбэках. Сами в бэкграунд потоке исполняют, а я должен колбэк передавать. А если мне надо несколько запросов сделать и я хочу это в своем бэкграунд треде сделать, то есть мне удобно было бы синхронный апи иметь и самому контролировать поток выполнения.
источник

AM

Andrew Mikhaylov in Kotlin Native
Алексей Гладков
Вот и получается, что ты делаешь переключение, а потом еще внутри переключение делается)
Если ты до этого был на IO или Default, на деле никакого переключения не происходит.
источник

AM

Andrew Mikhaylov in Kotlin Native
Если на UI, то это ровно то, что тебе надо :)
источник

АГ

Алексей Гладков... in Kotlin Native
Andrew Mikhaylov
Если ты до этого был на IO или Default, на деле никакого переключения не происходит.
А речь про корутины или про потоки?
источник