@kotlin_lang

Страница 963 из 982
Sergey
19.10.2018
16:25:38
какая разница где их обрабатывать, в onError или в catch?

Egor
19.10.2018
16:29:45
try/catch, вообще, просто читается хуже. С onError у вас есть один точный источник ошибок, когда try/catch можно впихнуть куда угодно в код и забыть про это, а потом не понимать, почему не обрабатывается там где надо

Особенно если корутина через несколько слоев абстракций проходит, как в каких-нибудь VIPER-ах

Руслан
19.10.2018
16:31:51
Честно говоря даже сложно это как-то обсуждать. С корутинами ты что-то забудешь, логгирования конечно в catch нету, и вообще все плохо. А вот с Rx прям хорошо, ничего не забываешь, дебажить легко и непринужденно и стектрейсы шелковистые

Google
Egor
19.10.2018
16:32:56
Нет, я и не говорю, что Rx легко дебажить :^D Я ещё раз говорю, корутины и Rx - разные юзкейсы, их действительно незачем сравнивать, и вообще разговор изначально о другом шел

Руслан
19.10.2018
16:34:09
У меня вот корутины, они через все слои в приложении, "фильтры", контроллеры, сервисы, база. У меня удобная централизованная обработка ошибок, ничего не забывается.

Mikhail
19.10.2018
16:34:18
Вы учите язык, вы выучили try/catch, вы учите корутины - там try/catch, все понятно в этом плане. Вы учите язык, try/catch, вам дают rx, вас съел огр.
try/catch как-то больше похож на то что мы с фреймворком взаимодействуем или либой и что-то пошло не так

а вот вернулось тебе 403 Spam - это исключение?

или то что ты реально можешь обработать как-то

Egor
19.10.2018
16:36:09
У меня вот корутины, они через все слои в приложении, "фильтры", контроллеры, сервисы, база. У меня удобная централизованная обработка ошибок, ничего не забывается.
И это не избавляет от проблемы, что завтра в компанию придёт какой-нибудь парень, которого посадят переписать какой-нибудь репозиторий, а он и не знает, что там обработка ошибок-то централизованная

Sergey
19.10.2018
16:36:18
а вот вернулось тебе 403 Spam - это исключение?
sealed Result и обрабатывай как душе угодно)

Mikhail
19.10.2018
16:36:36
а сложности в ркс джава с обработкой исключений такие же как и с корутинами, потому что вот надо тебе в корутине при исключении вернуться на пару уровней назад и попробовать сходить в другую апи - там тоже одним try/catch не обойдешься

sealed Result и обрабатывай как душе угодно)
вот и на этих result уже и хочется монад, чтобы хоть как-то код композировать между собой

Sergey
19.10.2018
16:38:16
вот и на этих result уже и хочется монад, чтобы хоть как-то код композировать между собой
403 spam тебе не нужно через все приложение прошивать, максимум на пару уровней придется вернуть это

Руслан
19.10.2018
16:38:54
И это не избавляет от проблемы, что завтра в компанию придёт какой-нибудь парень, которого посадят переписать какой-нибудь репозиторий, а он и не знает, что там обработка ошибок-то централизованная
Завтра в компанию придет парень который знает как писать на котлине и: 1. Ему понадобится час чтобы понять что в спринг все эксепшены падают в exeption handler и что в корутинах работает его любимый try/catch 2. Садиться и учиться Rx, потому что он ничего не может сделать без знаний Rx

Sergey
19.10.2018
16:40:15
Если в компании юзают Rx, то никто и не возьмет человека, который не знает Rx ?
и сколько на 100 человек которые знают котлин тех кто знают Rx?

Google
Руслан
19.10.2018
16:40:36
Т.е. если вы берете Rx вы сразу сильно снижаете себе количество людей которых вы сможете нанять.

А лучше втащить Rx и Arrow, будет идеальный job security на проекте

Egor
19.10.2018
16:41:07
и сколько на 100 человек которые знают котлин тех кто знают Rx?
А сколько на 100 человек людей, которые пишут под андроид и не знают Rx?

Ладно, лукавлю, много

Sergey
19.10.2018
16:41:29
А сколько на 100 человек людей, которые пишут под андроид и не знают Rx?
я знаю лично всего несколько человек на бекенде, которые знают реактор

Руслан
19.10.2018
16:41:42
А сколько на 100 человек людей, которые пишут под андроид и не знают Rx?
На бекенде вообще единицы используют. Сейчас разве что webflux начали немного юзать.

Egor
19.10.2018
16:42:02
ну, на реактор просто с Рх легко пересаживаться

Andrew
19.10.2018
16:42:14
Ладно, лукавлю, много
Стоит добавить к ним ещё тех, кто знает Rx, но в гробу его видел.

Sergey
19.10.2018
16:42:47
ну, на реактор просто с Рх легко пересаживаться
на jvm асинхронность пока сложно дается людям. а Rx до реактора никто и не юзал толком

Egor
19.10.2018
16:43:29
Алсо, гайдов (а ещё лучше - офф. документации) по спринг+реактор гораздо больше, чем спринг+корутины

Руслан
19.10.2018
16:43:41
Я так понимаю пока основная проблема с корутинами что там нет cold streams, но я вот не ощущаю в своих проектах надобности, видимо потому что у меня веб. Когда cold streams появятся можно будет закапывать rx в котлине, ведь так?

Egor
19.10.2018
16:43:59
Rx на мобилках*

Строго говоря, он там никогда и не был особо нужен, но лучше ничего не было

Sergey
19.10.2018
16:44:19
Руслан
19.10.2018
16:44:22
Алсо, гайдов (а ещё лучше - офф. документации) по спринг+реактор гораздо больше, чем спринг+корутины
Потому что корутины будут только в 5.1 оффициально поддерживаться, поэтому гайдов пока и нет

Egor
19.10.2018
16:45:22
хеллоу ворлдов? ну и бекенд не ограничивается спрингом
вертикс тоже гораздо лучше поддерживает rx, чем корутины

там и доки-то недавно появились

Sergey
19.10.2018
16:45:44
вертикс тоже гораздо лучше поддерживает rx, чем корутины
потому что он изначально был на rx, а корутины потом подвезли

Egor
19.10.2018
16:46:04
а что ещё для бекенда есть? Я уже и не знаю

Google
Egor
19.10.2018
16:46:07
Ну, с ктором понятно

А ещё?

Руслан
19.10.2018
16:46:21
там и доки-то недавно появились
Доки там уже год примерно, потому что год назад завели корутины

Sergey
19.10.2018
16:46:31
у нас был spring mvc, spring + reactor, spring + reactor + coroutines, теперь на ktor + coroutines и довольные как слоны

Руслан
19.10.2018
16:46:43
а что ещё для бекенда есть? Я уже и не знаю
да все что асинхронное, я просто беру undertow и пишу с кортинами

Sergey
19.10.2018
16:46:48
ждем вот стабильного релиза всего этого счастья и забываем как страшный сон о реакторе

Руслан
19.10.2018
16:47:19
а SSE у вас как? На каналах?
у нас вебсокеты на каналах были

Kirill
19.10.2018
16:47:48
какая разница где их обрабатывать, в onError или в catch?
try-catch -всегда в том же потоке. onError может выполняться в другом потоке. Это как минимум

Egor
19.10.2018
16:47:52
у нас вебсокеты на каналах были
С вебсокетами мы не подружились, увы, хотя сначала именно их хотели

Руслан
19.10.2018
16:48:14
Sergey
19.10.2018
16:48:44
а SSE у вас как? На каналах?
были только на прототипах, в проде не понадобилось. а так каналы да

Andrey
19.10.2018
16:52:48
Вопрос вкуса, но я пожалуй согласен с тем, что Either не нужен
Either - отлично помогает, если функция по должна возвращать тип A или тип B. Собственно, Either и есть сумма типов.

Mikhail
19.10.2018
16:55:05
Egor
19.10.2018
16:58:38
а что не получилось с вебсокетами?
Сессии мы с ними не подружили. В спринге сессии это вообще боль, на кторе да, легче, но на ктор не получилось перенести интерфейсы для редиса и кафки. Ну, там сама по себе структура бека непростая

Sergey
19.10.2018
18:11:26
как-то проект на jdk11 перестал собираться

dimiii
19.10.2018
18:22:53
fun (View, Float).dp() = this * resources.displayMetrics.density class SomeView : View { val someDimension = 4f.dp() } ~ class SomeView: View { import Float.dp val someDimension = 4f.dp() } ~ import Float.dp for View class SomeView: View { val someDimension = 4f.dp() } Это все одно и то же?

Quantum Harmonizer
19.10.2018
19:57:29
Nikita
19.10.2018
20:23:09
Как обернуть запрос, что бы обновление элементов было после его выполнения?

Google
Nikita
19.10.2018
20:23:14


Sergey
19.10.2018
20:58:49
https://twitter.com/relizarov/status/1053385576978829312?s=19

???

Quantum Harmonizer
19.10.2018
20:59:55
https://twitter.com/relizarov/status/1053385576978829312?s=19
Жаль только, что оно всё будет так быстро, что я, как обычно, не успею попробовать.)

OlegKrikun
19.10.2018
21:05:34
https://twitter.com/relizarov/status/1053385576978829312?s=19
Unable to resolve dependency for ':...': Could not resolve org.jetbrains.kotlinx:kotlinx-coroutines-core:1.0.0-RC1

а хде же джары? =)

Sergey
19.10.2018
21:06:14
@relizarov

OlegKrikun
19.10.2018
21:07:03
репы подключены jcenter и репа с eap'ами

Roman
19.10.2018
21:08:33
Ну как бы вроде вот же они в Maven Central лежат http://repo1.maven.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.0.0-RC1/

OlegKrikun
19.10.2018
21:11:58
Хм. Прокашлялось. Чот странное

Сорян =)

Kevte89
20.10.2018
00:36:50
hi @all

Алексей
20.10.2018
00:39:17
О.о

Kevte89
20.10.2018
00:39:50
can you me help??

Алексей
20.10.2018
00:40:33
Hi

It depend on your question:)

Valeriy
20.10.2018
00:41:04
немецкий порядок слов, ха

у него

Алексей
20.10.2018
00:41:28
You can ask, but most time it is russian group:)

Google
Алексей
20.10.2018
00:41:42
у него
О как

Kevte89
20.10.2018
00:52:36
yes I am German my English is bad if someone knows well with kotlin he would have to somebody see my date if it is true?

https://git.frostnerd.com/AndroidUtils/vpntunnelproxy

https://git.frostnerd.com/AndroidUtils/dnstunnelproxy

https://git.frostnerd.com/AndroidUtils/encrypteddnstunnelproxy

Алексей
20.10.2018
01:02:59


чёт Intellij IDEA Kotllin plugin подтупливает, то одно забывает покрасить, то у другого подсветку убрать... ни у кого такого не было?

Алексей
20.10.2018
04:26:58
Это и странно

Alexandr
20.10.2018
04:28:17
Во время индексации подсветка всегда лагала и будет лагать

Алексей
20.10.2018
04:28:55
Не, ошибки исправленные подчеркиваются красным

Alexandr
20.10.2018
04:28:55
Ничего странного в этом нет, общая IDE так работает

Алексей
20.10.2018
04:29:11
Слева в дереве файлики исправленные подчеркиваются красным

Закрыл файл, закрыл папку в дереве, открыл - всё норм

Magic

Alexandr
20.10.2018
04:30:14
Во время индексации это нормально, после индексации все исправится, если нет, то надо сделать реимпорт проекта

Алексей
20.10.2018
04:30:41
Ок, спасибо

Влад
20.10.2018
08:46:17


как такую конструкцию при помощи лямбда выражения записать?

Mikhail
20.10.2018
08:47:07

Страница 963 из 982