@kotlin_lang

Страница 505 из 982
Kylych
23.01.2018
15:44:21
you can calculate the position w/ a database query Что означает w/ ? with ?

You
23.01.2018
15:45:14
Пиратишь?

Rina
23.01.2018
15:45:44
Хочется найти материал реально полезный

You
23.01.2018
15:46:09


Google
Rina
23.01.2018
15:46:32
Понял, сообщение удаляю

Artiom
23.01.2018
15:46:33
Ребята, может знает кто сайт с годными идеями проектов по Android? Буду очень благодарен, хочу изучать котлин, создавая более-менее серьёзный проект, но идей нет

Dibro
23.01.2018
15:46:48
там 1.2.21 вышел https://github.com/JetBrains/kotlin/blob/1.2.20/ChangeLog.md

You
23.01.2018
15:47:32
Под Андроид найдется что-нибудь

Igor
23.01.2018
15:58:19
там 1.2.21 вышел https://github.com/JetBrains/kotlin/blob/1.2.20/ChangeLog.md
Чем дальше в лес, тем больше фиксов ?… а нет, перепутал просто с 1.2.20

Boris
23.01.2018
17:48:59
коллеги, нужна корутинопомощь

вот скажем у меня есть suspend fun send(request: Request): Response

а теперь мне нужно сделать Sequence из запросов

есть такая штука как buildSequence, но она специально ограничена в выполнении саспенд-функций внутри своего билдера

есть какой-то СаспендСиквенс для таких целей?

Google
Quantum Harmonizer
23.01.2018
17:53:19
Channel

Boris
23.01.2018
17:53:46
ах, ну да

точняк, спс

Artem
23.01.2018
17:54:09
а теперь мне нужно сделать Sequence из запросов
В смысле? А просто если писать последовательно? (Я прост зеленый в корутинах)

Boris
23.01.2018
18:01:18
А канал он такой немного императивный, да?

Вообще канал работает не совсем как сиквенс

Igor
23.01.2018
18:07:56
А канал он такой немного императивный, да?
Корутины вообще неможко императиные. Канал просто очередь с беэкпреше и заданным буфером (по умолчанию 0)

Anton
23.01.2018
18:43:39
по дарту то оказывается конфы проводятся гуглом

Igor
23.01.2018
18:46:56
По котлину тоже (один - один)

Гадкий
23.01.2018
18:47:05
Eugene
23.01.2018
19:11:39
по дарту то оказывается конфы проводятся гуглом
я тебе больше скажу, на нем и реальные продукты пишут. например, Wrike. послушайте devzen 172, там ребята говорят почему dart

Anton
23.01.2018
19:12:45
ну вот только врайк и пишет

не густо

ну и гугл) адмоб на нем вроде

Andrew
23.01.2018
19:28:16
Вероятно, в том, в котором "не декларативные" :)

Igor
23.01.2018
19:30:30
В каком смысле вы имеете ввиду слово "императивные"?
В прямом))) Там же основной селинг-поинт что можно: “как и раньше писать простой код с циклами/условиями/исключениями, а оно само магически заворачивается в колбеки (стейт машину)” В отличие от всяких футуров/промисов и прочих “монадок”

Igor
23.01.2018
19:34:38
Как назвать, наоборот, стиль с Rx или Callback Hell?
Хм, rx и callbacks это вроде разные стили (rx скорее “декларотивный”)

Max
23.01.2018
19:34:56
А корутины уже в продакшене юзают? Иди это удел энтузиастов пока?

Google
Quantum Harmonizer
23.01.2018
19:35:14
А корутины уже в продакшене юзают? Иди это удел энтузиастов пока?
на javanese.online использую ktor с корутинами — пока ничего не отвалилось

Igor
23.01.2018
19:36:43
А корутины уже в продакшене юзают? Иди это удел энтузиастов пока?
Я вот честно не понимаю что может останавливать от юзания в проде простых-корутин (не акторов/каналов). Если вы уж котлин затощили, то почему нет?

Andrew
23.01.2018
19:37:21
быстрое гугление результатов не дало, так что будем считать, что я первый: предлагаю в рамках популяризации корутин начать называть rx не иначе как monadic hell :D (дисклеймер: конечно же, это была шутка, каждой задаче свой инструмент)

Igor
23.01.2018
19:49:52
На одном из докладов Роман вроде называл их как “delegation-hell”

Boris
23.01.2018
19:50:44
Никто кстати не видел толковой статьи о том как виртуозно использовать каналы?

А то у меня фигня какая-то получается

Dmitry
23.01.2018
19:56:06
я по доке и исходникам разбирался. вроде, че-то понял

но это не точно

Boris
23.01.2018
19:58:25
Andrew
23.01.2018
20:04:09
я вам не скажу за всю Одессу, но сколько я примеров въезда в rx ни наблюдал (в том числе на себе), все сначала пишут дичь, а впоследствии постепенно проникаются и начинают выдавать более-менее адекватный код. полагаю, что с корутинами в котлине картина будет та же самая.

Anton
23.01.2018
20:13:59
это справедливо вообще для всего))

Andrew
23.01.2018
20:27:23
резонно.

Boris
23.01.2018
20:34:00
Я не о корутинах, а о каналах

Alexei
23.01.2018
20:34:58
@fogone так каналы вне корутин работать не будут не?

Sergey
23.01.2018
20:35:00
Никто кстати не видел толковой статьи о том как виртуозно использовать каналы?
на сколько виртуозно?) там даже экстешен методы к ним есть из коробки

Boris
23.01.2018
21:26:33
на сколько виртуозно?) там даже экстешен методы к ним есть из коробки
Ну вот если мне на них надо целый флоу организовать

Тип как это на рх бывает

Google
Sergey
23.01.2018
21:27:23
ну всякие map/filter делаются без проблем

а вот parallel, buffer, window это уже проблемнее

Boris
23.01.2018
21:28:18
Да, для того, чтобы понять, что мэпы и фильтры работают, не нужна статья ?

Sergey
23.01.2018
21:30:38
ну вообще можно законтрибьютить все операторы из rx для каналов)

https://github.com/Kotlin/kotlinx.coroutines/issues/172 я вот это жду

и с контекстами для MDC пока как-то непонятно выходит

Bogdan
23.01.2018
21:57:19
кто может поделится примерами поп kapt?

Dibro
23.01.2018
21:59:46
кто может поделится примерами поп kapt?
всё точно так же как и с обычным apt'ом

Bogdan
23.01.2018
22:01:21
всё точно так же как и с обычным apt'ом
я просто только началь увлекатся написания своими аннотациями

Dibro
23.01.2018
22:02:01
я просто только началь увлекатся написания своими аннотациями
https://github.com/JetBrains/kotlin-examples/tree/master/gradle/kotlin-code-generation

Bogdan
23.01.2018
22:02:17
спасибо)

Boris
24.01.2018
08:07:15
Я понял в чем проблема каналов, они просто ещё проработаны достаточно хорошо, многих нужных вещей пока нет

Roman
24.01.2018
08:47:57
Да нет, каналы вполне себе завершенная фича. Думается мне вещи вроде zip, throttle и подобного относятся к расширенному функционалу и им не место в базовой либе.

Roman
24.01.2018
08:49:54
Мерж есть, но он делается не так, как принято в rx.

Boris
24.01.2018
08:50:29
Последовательно похоже они работают норм, когда нужна более параллельная работа сложнее

Мерж есть, но он делается не так, как принято в rx.
Ура! Появился человек, который пришлет мне пример

Roman
24.01.2018
08:52:50
Дык я уже присылал в этот чатик. Но не факт что тот пример работает вообще, запускать не пробовал.

Google
Roman
24.01.2018
08:53:33
https://gist.github.com/romansl/6a050ccac6c7dcb7d624db8f0ebf913c

Igor
24.01.2018
08:53:37
Boris
24.01.2018
08:53:58
Igor
24.01.2018
08:54:38
Да я же против, только как?
А я не знаю основной задачи, для которой тебе нужны каналы, да еще и мерджить их

Boris
24.01.2018
08:55:25
https://gist.github.com/romansl/6a050ccac6c7dcb7d624db8f0ebf913c
Класс! Спс! А в чем основная идея?

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

Roman
24.01.2018
08:58:04
Идея в использовании select на каналах. Сначала дожидаемся пока не появятся оба события, затем выполняем некую функцию над ними шлем результат.

Boris
24.01.2018
08:58:10
Поэтому получается флоу цт каждого запроса, да ещё и самих каналов два

Roman
24.01.2018
08:59:31
Вот если нужно просто ждать люого канала, то это вообще тривиально. В моем примере сложность как раз в том, что нужно выполнить функцию над обоими событиями входных каналов.

Igor
24.01.2018
09:00:12
Ну, у меня есть два запроса, по результатам каждого надо пройти и сделать ещё запросы, параллельно, клиент этого всего должен получать результаты по мере из получения
А тут нельзя обойтись _одним_ каналом, переданным как параметр? Каналы же поддерживают многопоточную посылку событий.

Roman
24.01.2018
09:00:45
Кстати да, я сам предпочитаю использовать как раз один канал.

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