Роман Аймалетдинов - Coroutines: боль обработки ошибок

  Рет қаралды 3,388

Mobius

Mobius

Жыл бұрын

Ближайшая конференция - Mobius 2024 Autumn, 11 октября (Online), 19-20 октября, Санкт-Петербург. Подробности и билеты: jrg.su/Yu6KNJ
- -
Спикер расскажет про проблемы, с которыми столкнется команда при затаскивании корутин в свой проект. Доклад сфокусирован на обработке ошибок - вы не услышите про то, что такое launch и async, но вспомните про try-catch. Узнаете про coroutineExceptionHandler и про то, как эти инструменты стреляют в ногу. Спикер расскажет, как по его мнению обезопасить себя от этих выстрелов.
Скачать презентацию: squidex.jugru.team/api/assets...

Пікірлер: 7
@andreyliashuk2516
@andreyliashuk2516 Жыл бұрын
Елизаров одобрил бы такой подход) Мы создали корутины чтобы убрать коллбеки, теперь давайте обвернем их в коллбеки. У меня всегда возникает сразу вопрос, зачем вы стремитесь перехватить все ошибки? Почему код который потенциально может вернуть ошибку (например сетевой), нельзя обвернуть например в Result? Это заставит разработчика явно обработать ошибку и не добавляет бойлерплейт кода. А перехватывать все ошибки это плохая идея, так как можно легко пропустить серьезные ошибки.
@romanaymaletdinov5223
@romanaymaletdinov5223 Жыл бұрын
Добрый день! И в ваших словах есть логика, однако я считаю, что больше вреда будет от необработанных ошибок и того, что разработчик не позаботился об error состоянии. С корутинами соблазн не обработать error невероятно велик. Ошибки же можно успешно выявлять с помощью логов аналитики и дебажных инструментов. Если мы хотим ронять апп время от времени, то перехваченные ошибки могут ронять апп на дебажных сборках и выключать фичи при фиксировании ошибок на сервере. Как бы то ни было, оба подхода могут обеспечивать необходимое качество, вопрос в команде, ее особенностях, процессах фиксирования и выявления проблем. Если ваша команда опытна и давно пишет на корутинах - этот подход вам определенно не нужен.
@quverr
@quverr Жыл бұрын
+1 за то что бы возвращать Result а потом fold'ить как в Arrow.
@sweetcapitan5690
@sweetcapitan5690 2 ай бұрын
Роман кололся, плакал, но продолжал есть кактус.
@user-zh5il3gg6v
@user-zh5il3gg6v 8 ай бұрын
Посмотрел только сейчас, и то, что меня терзало большую часть времени - так и сыграло. А именно 4:53 Роман подсвечивает ошибку, что мы ожидаем Exception, а функция mapServerResponse кидает Error. Но тут и у автора выходит ошибка: присмотритесь, мы не вызываем mapServerResponse, мы вызываем какой то loadSmth… Я думал что эти функции вообще никак не связаны честно говоря, а в итоге - в первой вызывается вторая …
@user-hv9ks6io5x
@user-hv9ks6io5x Жыл бұрын
А почему ни в одном примере не рассматривали SupervisorJob?
@ilyavlasov7454
@ilyavlasov7454 9 ай бұрын
Если немного упороться с infix функциями, то можно добиться такого кода: launchMain { // Run some suspend functions on Main } catch { // Handle error (it) on Main } или, если нужно обработать ошибку не на Main launchMain { // Run some suspend functions on Main } catch on(Dispatchers.IO) { // Handle error (it) on IO }
Роман Елизаров - Корутины в Kotlin
59:04
JPoint, Joker и JUG ru
Рет қаралды 62 М.
Универ. 13 лет спустя - ВСЕ СЕРИИ ПОДРЯД
9:07:11
Комедии 2023
Рет қаралды 6 МЛН
Haha😂 Power💪 #trending #funny #viral #shorts
00:18
Reaction Station TV
Рет қаралды 14 МЛН
A pack of chips with a surprise 🤣😍❤️ #demariki
00:14
Demariki
Рет қаралды 54 МЛН
Василиса наняла личного массажиста 😂 #shorts
00:22
Денис Кукояка
Рет қаралды 9 МЛН
Корутины
1:51:55
Young&&Yandex: мобильная разработка
Рет қаралды 12 М.
Android Parcelable или Serializable? Павел Борзиков @AvitoTech
24:01
Android Broadcast. Все об Андроид разработке
Рет қаралды 16 М.
Избавляемся от try-catch | Кастомный адаптер для Retrofit
17:05
Android Broadcast. Все об Андроид разработке
Рет қаралды 9 М.
Учим Kotlin с нуля | №21 Исключения и ошибки.
45:43
7±2 things you didn't know about Exposed by Alexey Soshin
44:28
Kotlin by JetBrains
Рет қаралды 2,2 М.
Simple maintenance. #leddisplay #ledscreen #ledwall #ledmodule #ledinstallation
0:19
LED Screen Factory-EagerLED
Рет қаралды 2 МЛН
WWDC 2024 Recap: Is Apple Intelligence Legit?
18:23
Marques Brownlee
Рет қаралды 6 МЛН