Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Rooster

Программирование[9]

Перепись  

260 пользователей проголосовало

У вас нет прав на голосование в этом опросе, или на просмотр результатов опроса. Пожалуйста, войдите или зарегистрируйтесь для голосования в опросе.

Рекомендованные сообщения

nobodies написал 8 минут назад:

надеюсь не сдохнуть на 2х работах

это контрпродуктивно

тебе это вообще зачем?


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

деньги нужны: в стоматологию надо бы 250к занести + еще дел на 600к. от скуки таким люди не занимаются

Поделиться сообщением


Ссылка на сообщение

Кто шарит в ФРП

    private static Flux<X> doMagic(Flux<X> flux) {
        return Mono.fromCallable(() -> IOCAL)
            .flatMapMany(o -> flux.map(x -> o.doJob(x)));
    }

как избежать бессмысленного вызова IOCAL если flux пустой? :takpadazhi:

На ум приходит например вариант

    private static Flux<Integer> doMagic(Flux<Integer> flux) {
        Mono<Object> cache = Mono.fromCallable(() -> IOCAL)
                                 .cache();
        return flux.flatMap(x -> cache.map(o -> o.doJob(x)));
    }

Но мб есть изящнее решения.

Поделиться сообщением


Ссылка на сообщение
(изменено)
Index написал 23 минуты назад:

как избежать бессмысленного вызова IOCAL если flux пустой? 

сделать первым вызов флукс, внутри него вызов IO и уплощить монады через тот же флатмап

тобишь flux.flatMap( x -> Mono(IOCALL).map(o -> o.doJob(x))

не знаю что делает флукс, моно и ио. просто это композиция монад в разной последовательности, насоклько понял эти примитивы из моно монадичны

 

а "ФРП" это маркетинговый базворд

не знаю этого подхода, но скомпозить вычисления мне это не помешало

 

 

хотя возможно я ошибаюсь и у вас там всё не лези и тогда map не подходит тк он запускает вычисления. но я думаю что это все таки не так


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
Just.Doit написал 12 минут назад:

тобишь flux.flatMap( x -> Mono(IOCALL).map(o -> o.doJob(x))

в таком случае у тебя для кажого элемента x флакса (который по сути стрим от 0 до инфинити) будет дергаться IOCALL

Поделиться сообщением


Ссылка на сообщение
Index написал Только что:
Just.Doit написал 14 минут назад:

тобишь flux.flatMap( x -> Mono(IOCALL).map(o -> o.doJob(x))

в таком случае у тебя для кажого элемента x флакса (который по сути стрим от 0 до инфинити) будет дергаться IOCALL

понял

да тогда нужно лези вал (вычисление с мемоизацией) сделать гдето выше. наверное кэш это и делает


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

И да, мне нужен совет именно опытных реактивщиков, которые знают не только флетмапы, но и transformDeferred хот паблишеры хуе мое пятое десятое.

 

Со знанием методов монад тут не поможешь .

Кеш это и делает. Он производит вызов только когда на него подписываются. и потом просто кеширует результат Но там оказалось не так все просто.

Поделиться сообщением


Ссылка на сообщение
Index написал 4 минуты назад:

Но там оказалось не так все просто

поч


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
Just.Doit написал 3 минуты назад:
Index написал 7 минут назад:

Но там оказалось не так все просто

поч

Потому что там пропогируется flux вместе с объектом IOCALL на 4 стека вглубь.

И в самой глубине перед тем как на него подписаться ещё берется из объекта IOCALL билдится дефолтная хуйня для процессинга.

Поделиться сообщением


Ссылка на сообщение
(изменено)
Index написал 6 минут назад:

на 4 стека вглубь

в смысле 4 вызова по стеку вглубь?

тебя это ебет разве?

у тебя там супер мего оптимизированный дроч чтоли и именно это место это ботлнек??


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
Index said 5 minutes ago:
Just.Doit said 10 minutes ago:
Index said 15 minutes ago:

Но там оказалось не так все просто

поч

Потому что там пропогируется flux вместе с объектом IOCALL на 4 стека вглубь.

И в самой глубине перед тем как на него подписаться ещё берется из объекта IOCALL билдится дефолтная хуйня для процессинга.

А если с помощью switch - case?


 

Жиза для любопытных

Чекнул = пидор

 

Поделиться сообщением


Ссылка на сообщение
Just.Doit написал 9 минут назад:

в смысле 4 вызова по стеку вглубь?

тебя это ебет разве?

у тебя там супер мего оптимизированный дроч чтоли и именно это место это ботлнек??

Не мне просто впадлу рефакторить. Пока другое горит.

Просто вместо передачи по стеку объекта надо будет передавать Mono

и потом ещё навернуть чтобы этот Mono возвращал не только объект, но и сбилженую хуйню которая билдится на 4-м слое :zemlyapuhom:

Причем код ещё не мой, я бы так не делал криво.

Поделиться сообщением


Ссылка на сообщение
Index said 20 minutes ago:
Just.Doit said 33 minutes ago:

в смысле 4 вызова по стеку вглубь?

тебя это ебет разве?

у тебя там супер мего оптимизированный дроч чтоли и именно это место это ботлнек??

Не мне просто впадлу рефакторить. Пока другое горит.

Просто вместо передачи по стеку объекта надо будет передавать Mono

и потом ещё навернуть чтобы этот Mono возвращал не только объект, но и сбилженую хуйню которая билдится на 4-м слое :zemlyapuhom:

Причем код ещё не мой, я бы так не делал криво.

Так а что насчет switch - case?


 

Жиза для любопытных

Чекнул = пидор

 

Поделиться сообщением


Ссылка на сообщение

Что свитчкейс? :onneponimaet:

Поделиться сообщением


Ссылка на сообщение
Index said 2 minutes ago:

Что свитчкейс? :onneponimaet:

Ну ты пробовал свитчкейс вставить, чтобы сделать изящнее решение?


 

Жиза для любопытных

Чекнул = пидор

 

Поделиться сообщением


Ссылка на сообщение

Как тут свитчкейс поможет в структуре вида? :honkler:

Mono.call(o)

.flatMap(o -> process1(flux,o))

 

fun process1(flux,o) {

...

return process2(flux,o)

}

 

fun processN(flux,o) {

   ooo = buildDefault(o)

   return flux.map(e -> finalyProcess(e,o,ooo));

}

Поделиться сообщением


Ссылка на сообщение
Index said Just now:

Как тут свитчкейс поможет в структуре вида? :honkler:

Mono.call(o)

.flatMap(o -> process1(flux,o))

 

fun process1(flux,o) {

...

return process2(flux,o)

}

 

fun processN(flux,o) {

   ooo = buildDefault(o)

   return flux.map(e -> finalyProcess(e,o,ooo));

}

Ну а ниже свитчкейс


 

Жиза для любопытных

Чекнул = пидор

 

Поделиться сообщением


Ссылка на сообщение

кейсы перечислишь? :kaifstelish:

Поделиться сообщением


Ссылка на сообщение
Index said Just now:

кейсы перечислишь? :kaifstelish:

Сначала напиши сколько кейсов, потом перечислю тебе их


 

Жиза для любопытных

Чекнул = пидор

 

Поделиться сообщением


Ссылка на сообщение

кейсов два, флакс эмпти или нет

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...