Size: a a a

Kotlin Community

2020 September 12

ПФ

Паша Финкельштейн... in Kotlin Community
это как раз базироваться будет на обсёрвабл + лист подписчиков
источник

AN

Alexander Nozik in Kotlin Community
Паша Финкельштейн
Ну в целом написать такой делегат несложно
Ну, скажем так, написать его хорошо - сложно (чтобы генерично, тред-сейфно и не очень дорого). Но чтобы работало, да, это обычный листенер
источник

с#

саша сок #KotlinGang... in Kotlin Community
Alexander Nozik
Ну, скажем так, написать его хорошо - сложно (чтобы генерично, тред-сейфно и не очень дорого). Но чтобы работало, да, это обычный листенер
трейдсейфно это конечно хорошо, но вы когда-нибудь пробовали писать программы без многопотока
источник

ПФ

Паша Финкельштейн... in Kotlin Community
Alexander Nozik
Ну, скажем так, написать его хорошо - сложно (чтобы генерично, тред-сейфно и не очень дорого). Но чтобы работало, да, это обычный листенер
Зависит от того, какие трейдоффы нужны. Нужно ли пописываться на отдельные поля или достаточно на все скопом
источник

AZ

Alexander Zalutskiy in Kotlin Community
Alexander Nozik
Ну, скажем так, написать его хорошо - сложно (чтобы генерично, тред-сейфно и не очень дорого). Но чтобы работало, да, это обычный листенер
Ну. Без генерично это сразу fail)
источник

AN

Alexander Nozik in Kotlin Community
Паша Финкельштейн
Зависит от того, какие трейдоффы нужны. Нужно ли пописываться на отдельные поля или достаточно на все скопом
Если на все скопом, то это динамическое дерево. См. plotly.kt.
источник

ПФ

Паша Финкельштейн... in Kotlin Community
саша сок #KotlinGang
трейдсейфно это конечно хорошо, но вы когда-нибудь пробовали писать программы без многопотока
канкарренси и многопоточность — разные вещи же
источник

ПФ

Паша Финкельштейн... in Kotlin Community
стейтлесс многопоточность — очень частое явление
источник

с#

саша сок #KotlinGang... in Kotlin Community
Паша Финкельштейн
канкарренси и многопоточность — разные вещи же
ну я знаю
источник

ПФ

Паша Финкельштейн... in Kotlin Community
а так — ну какой-нибудь ConcurrentHashSet, цикл по лиснерам в трайкетче и всё
источник

ДА

Джамал Алиев... in Kotlin Community
Да… вот вы могете😄
источник

ПФ

Паша Финкельштейн... in Kotlin Community
Ну и когда у тебя стейтлесс — тебе канкарренси не нужно, а тредсейфети само )
источник

AN

Alexander Nozik in Kotlin Community
Паша Финкельштейн
а так — ну какой-нибудь ConcurrentHashSet, цикл по лиснерам в трайкетче и всё
да. Это если одно поле. Или если нет дженериков. Если есть дженерики и много полей - уже сложнее.
источник

AZ

Alexander Zalutskiy in Kotlin Community
Паша Финкельштейн
а так — ну какой-нибудь ConcurrentHashSet, цикл по лиснерам в трайкетче и всё
Можно (если не критично) даж цикл параллелить.
источник

ПФ

Паша Финкельштейн... in Kotlin Community
Alexander Nozik
да. Это если одно поле. Или если нет дженериков. Если есть дженерики и много полей - уже сложнее.
там же проп прокидывается. Пусть лиснер решает надо ему этот проп или нет
источник

ПФ

Паша Финкельштейн... in Kotlin Community
Alexander Zalutskiy
Можно (если не критично) даж цикл параллелить.
там всё ещё возможны странные гонки типа "добавили лиснера, а сообщение в него прилететь не успело"
источник

AZ

Alexander Zalutskiy in Kotlin Community
Alexander Nozik
да. Это если одно поле. Или если нет дженериков. Если есть дженерики и много полей - уже сложнее.
А в чем проблема с generic? Или о каком generic идёт речь?
источник

AN

Alexander Nozik in Kotlin Community
А можно взять StateFlow. Там уже и поля и подписки, но с оверхедом
источник

ДА

Джамал Алиев... in Kotlin Community
Alexander Nozik
А можно взять StateFlow. Там уже и поля и подписки, но с оверхедом
Да, использовал
источник

AN

Alexander Nozik in Kotlin Community
Alexander Zalutskiy
А в чем проблема с generic? Или о каком generic идёт речь?
Диспатчить события от разных полей разных типов по одной подписке
источник