@kotlin_lang

Страница 902 из 982
Denis
02.10.2018
12:29:31
Не идет у меня связка котлин+ тесты хоть убей... вроде сделал, но теперь следующая проблема вылезла из этого. у меня в качестве слушателя для рх метода написано subscribeBy, т.к. метод completable и мне не нужен результат. при тесте этого метода вылетает ошибка java.lang.IllegalArgumentException: Parameter specified as non-null is null: method io.reactivex.rxkotlin.SubscribersKt.subscribeBy, parameter $receiver

Quantum Harmonizer
02.10.2018
12:29:56
Denis
02.10.2018
12:30:51
уже не знаю что с этими тестами делать. целый день убил, но так ничего и не покрыл

Жабра
02.10.2018
12:32:08
потому что в первом случае циклическая зависимость разрешима (var же), во втором — нет
Хм... Но всё же не очень понятно, почему. Это ведь тоже зависимость. Autowired конструкторы жёстче? Или момент соединения бинов у autowired property позже?

Google
Quantum Harmonizer
02.10.2018
12:33:11
Хм... Но всё же не очень понятно, почему. Это ведь тоже зависимость. Autowired конструкторы жёстче? Или момент соединения бинов у autowired property позже?
В коде явно видно, что в первом случае объект нужно сначала создать, потом заинжектить. Во втором это делается одним махом.

Denis
02.10.2018
12:33:59
Переписывай на корутины ?
хотелось бы прикрутить рх + котлин всё таки. потом уже корутины буду юзать

не комильфо на пол пути бросать

Denis
02.10.2018
12:34:48
А зачем? Лучше ж сразу корутины
почти весь проект уже написан на рх

хочу доделать

потом версию с корутинами напишу

Жабра
02.10.2018
12:35:30
+
На фоне парк Галицкого?)

потом версию с корутинами напишу
Ага, рефакторить больше

Кайф

Google
Quantum Harmonizer
02.10.2018
12:35:45
потом версию с корутинами напишу
ого, много свободного времени

Denis
02.10.2018
12:36:13
так что, может есть у кого идеи, что не так?

Andrew
02.10.2018
12:36:20
Denis
02.10.2018
12:36:26
Joel
02.10.2018
12:45:36
где альтернатива Flowable из RxJava2 в Coroutines?

Joel
02.10.2018
12:47:12
channel, нет?
нет. это Publish в RxJava2

Quantum Harmonizer
02.10.2018
12:48:33
Channel, да

Konstantine
02.10.2018
12:49:08
Каналы бывают разные Черные белые красные

Joel
02.10.2018
12:49:35
не. вы путаете. Room в RxJava2 возвращает с помощью  Flowable

Quantum Harmonizer
02.10.2018
12:50:01
Глеб
02.10.2018
12:50:11
При чем здесь room?

Quantum Harmonizer
02.10.2018
12:50:12
На странице корутин есть таблица, что чем заменять.

Joel
02.10.2018
12:53:19
я прекрасно понимаю, как работают Channels. просто, где реактивный подход-то? неужели мне самому нужно сказать Coroutine обновлять RecyclerView, если я в БД добавлю данные?

Joel
02.10.2018
12:55:02
не, подписаться на канал, обновлять при каждом изменении
это немного другое. вообщем нашел вот это : https://github.com/Kotlin/kotlinx.coroutines/tree/master/reactive/kotlinx-coroutines-rx2

не, подписаться на канал, обновлять при каждом изменении
хотя придется так сделать. уж не очень люблю добавлять Channel в проект

Dmitry
02.10.2018
12:56:28
Я: пора переходить на котлин! Kotlin: Unresolved reference: Any

Joel
02.10.2018
12:56:36
Google
Dmitry
02.10.2018
12:56:42
Joel
02.10.2018
12:57:16
а coroutines уже не экспериментальные, а релизные?
год назад был экспериментальным тоже. я думал, что в этом году уже будет релиз. но, они не релизнули. перешлось переходить все равно. все работает стабильно. проблем еще не заметил

Quantum Harmonizer
02.10.2018
12:57:38
eugene
02.10.2018
12:58:04
а какая разница?
разве не будет разницы с релизной версией и экспериментальной?

Quantum Harmonizer
02.10.2018
12:58:27
Joel
02.10.2018
12:59:16
а какая разница?
AndroidX релизнули 21 сентября, и долгое время она была в бете. и так как она была в бете, многие библиотеки не решались переходить на AndroidX. и вот в 21 сентября выходит AndroidX, а многие либы просто не готовы моментально перейти в AndroidX. из-за чего просто работа встала. переходить-то мы перешли в AndroidX, а из-за того, что многие UI библиотеки резко стали legacy, то работа реально встала

eugene
02.10.2018
12:59:31
то есть сейчас корутины экспериментальные в 1.2, а в 1.3rc уже релизные?

Joel
02.10.2018
12:59:43
это почти что релизные

но это почти

eugene
02.10.2018
12:59:54
rc - это release candidate
это я понимаю

я к тому, что в kotlin 1.2 корутины будут экспериментальными, правильно?

eugene
02.10.2018
13:00:36
потому что 1.2 stable, а 1.3 только rc

Жабра
02.10.2018
13:01:03
я к тому, что в kotlin 1.2 корутины будут экспериментальными, правильно?
В 1.2 они ещё эксперементальные, а скоро 1.3 релизнут, там они релизные.

Quantum Harmonizer
02.10.2018
13:02:08
JB занимаются разработкой разработческих инструментов, их прибыль напрямую зависит от их качества. Прибыль Google зависит от качества их поиска, на разработческие штуки им вообще плевать.

Жабра
02.10.2018
13:02:13
ok, понял, спасибо
4 числа, по идее

Google
eugene
02.10.2018
13:02:34
4 числа, по идее
а где можно узнать эту инфу?

Жабра
02.10.2018
13:02:41
Admin
ERROR: S client not available

Maxim
02.10.2018
13:02:44
Как гарантированно избежать ConcurrentModificationException при работе с коллекцией?

Quantum Harmonizer
02.10.2018
13:03:24
Как гарантированно избежать ConcurrentModificationException при работе с коллекцией?
не изменять коллекцию, пока итерируешь её / использовать персистентные коллекции

eugene
02.10.2018
13:03:36
https://kotlinconf.com/
понял, спасибо

Egor
02.10.2018
13:04:05
Quantum Harmonizer
02.10.2018
13:05:04
Это хде таблица?
Уже не знаю. Вот есть нечто похожее https://github.com/Kotlin/kotlinx.coroutines/blob/master/reactive/coroutines-guide-reactive.md

Joel
02.10.2018
13:06:39
но несмотря на это, некоторые библиотеки все равно жалуются

Maxim
02.10.2018
13:14:21
Не пользоваться мутабельными коллекциями?
а если необходимо сделать очередь загрузки в несколько потоков с ограничением в N загрузок одновременно?

Joel
02.10.2018
13:14:35
не, подписаться на канал, обновлять при каждом изменении
сделал по твоему способу. thank you! просто запутался. проект гибрид из RxJava2 и Coroutines

Maxim
02.10.2018
13:18:56
map/reduce?
каким образом map/reduce поможет избежать concurrent modification exception?

Alexey
02.10.2018
13:20:44
каким образом map/reduce поможет избежать concurrent modification exception?
map/reduce преполагает, что ты сначало получаешь данные, а потом их объединяешь, тебе тут как бы не понадобятся мутабельные коллекции

Можно посмотреть например на дизайн java Stream api (госпади помилуй), там как раз все операции в collect описываются как пребразование + склеивание

И это было сделано для concurrent Streams

Igor
02.10.2018
13:26:17
а если необходимо сделать очередь загрузки в несколько потоков с ограничением в N загрузок одновременно?
Канал (ограниченного размера) + Диспатчер с ограниченным кол-вом потоков?

Google
Alexander
02.10.2018
13:33:33
где я уже облажался?
Вероятно stdlib не подключил

Жабра
02.10.2018
15:09:45
https://m.habr.com/post/425077/

Андрей
02.10.2018
15:38:21
https://m.habr.com/post/425077/
там неточности есть кое-где, вечерком подправлю =)

и надо было про when написать, он вообще не очевидный)

Sergey
02.10.2018
16:48:37
spring fu конечно прикольно выглядит... на ktor смахивает, но нафиг тащить весь спринг если можно просто ktor заюзать??

Quantum Harmonizer
02.10.2018
17:09:53
Руслан
02.10.2018
17:12:38
Ну если есть время писать свой spring - то да, а если бац-бац и в продакшен то spring вполне ок

Bogdan
02.10.2018
17:41:15
https://m.habr.com/post/425077/
а инлайн классы не такие уж и "бесплатные", хотя я наверное много хочу

Quantum Harmonizer
02.10.2018
17:42:30
а инлайн классы не такие уж и "бесплатные", хотя я наверное много хочу
они бесплатные в плане памяти и GC pressure на рантайме

Bogdan
02.10.2018
17:44:59
они бесплатные в плане памяти и GC pressure на рантайме
не это отлично, но отдельный класс генеритсья, нужно быть осторожним. Я думал там полностью на статик-методах сделано (без класса)

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