Size: a a a

JPoint, Java-конференция

2020 June 11

OS

Oleg Shelajev in JPoint, Java-конференция
по всем 3 мне кажется, нет?
источник

OS

Oleg Shelajev in JPoint, Java-конференция
как бы 1 ответ на все 3 мог бы быть -
1. возьми любой который тебе нравится, например reactor потому что тебе например спринг близок по философии да и сделай
2. возьми да и сделай (например ишшуе в проект - хочу вот такой оператор) или прям встрой в свой выбранный фреймворк оператор, не надо их клеить  особо?
3. возьми все по разу и измерь? или возьми 1 да и ладно?
источник

DV

Dima Volykhin in JPoint, Java-конференция
то есть можно и так суммировать?
1. возьми любой
2. возьми да сделай
3. возьми и измерь =)
источник

OS

Oleg Shelajev in JPoint, Java-конференция
ну как бы да, любой возьми и будет как бы норм
источник

OS

Oleg Shelajev in JPoint, Java-конференция
а ты спрашиваешь какой лучший
источник

OS

Oleg Shelajev in JPoint, Java-конференция
и как лучше клеить
источник

OS

Oleg Shelajev in JPoint, Java-конференция
и как лучше мерять
источник

OS

Oleg Shelajev in JPoint, Java-конференция
"что думать прыгать надо"
источник

OS

Oleg Shelajev in JPoint, Java-конференция
они же все примерно одинаковые
источник

DV

Dima Volykhin in JPoint, Java-конференция
че тут думать), впиливаешь в проект RxJava, а потом выпиливаешь)) и так с каждым
источник

SM

Sergey Morgunov in JPoint, Java-конференция
Ну значит надо впилить что-то другое, что потом не придётся выпиливать 🙂 Выбор то вроде выше же и обозначен 😂 Причем список ещё и далеко не полный 🙂
источник

DV

Dima Volykhin in JPoint, Java-конференция
Sergey Morgunov
Ну значит надо впилить что-то другое, что потом не придётся выпиливать 🙂 Выбор то вроде выше же и обозначен 😂 Причем список ещё и далеко не полный 🙂
Чем можно дополнить? )
источник

SM

Sergey Morgunov in JPoint, Java-конференция
Dima Volykhin
Чем можно дополнить? )
Вот сейчас даже обидно было 😂 Akka Stream конечно 😀 Ну и к Kotlin Flow уже можно тоже присматриваться, как мне кажется 😀
источник

OD

Oleh Dokuka in JPoint, Java-конференция
Dima Volykhin
Почему не использую реактивные стримы #конкурс

1) Есть несколько реализаций реактивных стримов, которые реализуют иногда достаточно похожие вещи разными способами. Вот если захочу написать свой паблишер данных из массива, как его написать так же как FromArrayPublisher из ServiceTalk или ObservableFromArray из RxJava или FluxArray из Reactor или как в RangePublisher из примеров  ReactiveStreamsJvm?
Или например, если есть библиотека, к которой хочется написать реактивный коннектор? Как это сделать? Каким из множества способов?

2) Если не хватает какого-то оператора, а он есть в соседней реактивной бибилотеке, как их связать? Как например взять оператор из RxJava и присоединить его в паблишеру из Reactor? Если все таки делать это, может получится так, что придется поддерживать интеграции с несколькими реактивными библиотеками как в микронавте - https://i.imgur.com/u6INXfn.png

3) У каждого есть модуль для работы с Netty например, какой из них лучший?
ServiceTaslk - servicetalk-transport-netty, RxJava - RxNetty, ProjectReactor - reactor-netty. Нужно измерить? Как? Ведь не получится их проверить, не притащив  их всю платформу под ними. Можно ли использовать RxNetty и reactor-core вместе?
1) паттерны имплементаци в rx / reactor / примере из Reactive Streams spec являються наиболее сложными но и наиболее заточены на перформанс. Можно следовать их примеру что бы делать имплементацию на свои нужды. Если речь идёт о промежуточном операторе, то реактор предоставляет Operators.lift как один из вариантов имплементаци и своего оператора


2) Что касаеться поддержки нескольких типов то это беда спеки, и мы c @bsideup решаем это проблему на уровне спеки -> https://github.com/reactive-streams/reactive-streams-jvm/pull/490 и да, все поддерживающим инициативу поставить жирный лайк. Возвращаясь к проблеме поддержки нескольких типов - ответ простой. Это мракобесие оптимизаций и отсутствие наследования от паблишера. Именно поэтому там прям идет проверка что все они конкретные типы а не паблишеры. Хочу заметить что проверку на моно делать не следует так как Реактор Mono наследует Publisher APi когда Observalble, Maybe, Single, Completable это все не связаные типы которые конвертируються в Publisher, именно поэтому и нужен этот конвертер. Хочу заметить что Service Talk скопирывал RxJava и у них идентичные Single/ Maybe/ Completable которые никак не связаны с Rx и которые прийдеться наверняка тоже поддерживать беднягам из микронавта (до тех пор пока мы не пропушим  MonoPublisher - и как оказалось это прям не из простых задача казалось бы пропихнуть очевидную и очень важную вещь)

3) сервис толк как и микронавт как и все эти реактивные ферймворки это очередная потуга сделать еще один спринг (это мое субьективное мнение) и тут уже вопрос - а что вам краше. На счет перформанса - я думаю какие то референсные сравнения появяться тут в скором времени -> https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=query&l=zik0vz-f&p=zik0zi-zik0zj-zik0zj-4fti4f-0&d=e3
источник

OD

Oleh Dokuka in JPoint, Java-конференция
Oleg Shelajev
микронавт вот это делает на скриншоте - потому что в самой спеке нету типа для 1 результата
Вот, всем кто хочет паблишер на 0 -1 елемент лайкать https://github.com/reactive-streams/reactive-streams-jvm/pull/490 и говорить что все горит. очень нужно. ентерпрайз погибает без MonoPublisher
источник

OD

Oleh Dokuka in JPoint, Java-конференция
Dima Volykhin
че тут думать), впиливаешь в проект RxJava, а потом выпиливаешь)) и так с каждым
Лучше реактор впиливать. Он поддерживает все для сервера
источник

OD

Oleh Dokuka in JPoint, Java-конференция
либо уже тогда Kotlin.Flow впиливать
источник

OD

Oleh Dokuka in JPoint, Java-конференция
он там хоть нативный (на правах рекламы котлина от @fundamentalparticle :D)
источник

OD

Oleh Dokuka in JPoint, Java-конференция
Sergey Morgunov
Вот сейчас даже обидно было 😂 Akka Stream конечно 😀 Ну и к Kotlin Flow уже можно тоже присматриваться, как мне кажется 😀
Akka Streams это чуть больше чем Reactive Streams - это варикт построить систему  - так как там они вмонтировали акторы
источник

OD

Oleh Dokuka in JPoint, Java-конференция
но - Akka Streams просто пипец какие медленные
источник