Size: a a a

ReactiveX - русскоговорящее сообщество

2017 March 15

IK

Igor Komarov in ReactiveX - русскоговорящее сообщество
Только кто-то так делает ли ?
источник
2017 March 16

AP

Alexey Pushkarev in ReactiveX - русскоговорящее сообщество
Igor Komarov
угу, а еще на хаскелле под андроид писать можно
Ну это несравнимые вещи, утрируешь)
источник

AP

Alexey Pushkarev in ReactiveX - русскоговорящее сообщество
теоретически как бы может же
источник

VR

ViTO Rossonero in ReactiveX - русскоговорящее сообщество
Alexey Pushkarev
Ну блин, если я по кнопке буду запускають запросы в сеть, то у меня будут кормится в списке эти диспосаблы? Это так и должно?
- сделай Observable из кликов;
- примени backpressure стратегию
или дисейбли кнопку, когда есть активная загрузка (в зависимости от задачи);
- flatMap'ь клик в запрос на загрузку,
через flatMap можешь ограничить количество одновременных загрузок(не забудь внутри flatMap распаралеллить)

в итоге получаешь одну подписку, от которой нужно вовремя отписаться
источник

VR

ViTO Rossonero in ReactiveX - русскоговорящее сообщество
Alexey Pushkarev
Observable.just(1).subscribe( onNext(){ getViewState().Somemethod(); })
здесь ничего не потечет просто потому что этот код выполнится синхронно
источник

VB

Vitaliy Babichev in ReactiveX - русскоговорящее сообщество
ViTO Rossonero
- сделай Observable из кликов;
- примени backpressure стратегию
или дисейбли кнопку, когда есть активная загрузка (в зависимости от задачи);
- flatMap'ь клик в запрос на загрузку,
через flatMap можешь ограничить количество одновременных загрузок(не забудь внутри flatMap распаралеллить)

в итоге получаешь одну подписку, от которой нужно вовремя отписаться
Ну вы и упороты иногда, господа :)
источник

А

Андрей in ReactiveX - русскоговорящее сообщество
ViTO Rossonero
здесь ничего не потечет просто потому что этот код выполнится синхронно
just меняем на time, и значение побольше.
источник

VR

ViTO Rossonero in ReactiveX - русскоговорящее сообщество
Андрей
just меняем на time, и значение побольше.
ну так у timer же дефолтный шедулер computation
источник

VR

ViTO Rossonero in ReactiveX - русскоговорящее сообщество
в приведенном примере был just
источник

А

Андрей in ReactiveX - русскоговорящее сообщество
ViTO Rossonero
в приведенном примере был just
вырвано из контекста. вопрос был о захвате внешних ссылок
источник

VR

ViTO Rossonero in ReactiveX - русскоговорящее сообщество
Alexey Pushkarev
А если ничего?
Alexey Pushkarev, [15.03.17 19:26]
Observable.just(1).subscribe( onNext(){ getViewState().Somemethod(); })

Alexey Pushkarev, [15.03.17 19:26]
Вот так протечет?

эм по-моему человек конкретно задал вопрос а что если этих захваченных внешних ссылок нет?
источник

А

Андрей in ReactiveX - русскоговорящее сообщество
так что если смотреть в каких шедулерах запускать, то не потечет, поскольку последовательно выполнится. Но вот если бы эта цепочка вызывалась у него где-то для запроса в сеть, то утечка гарантирована, если презентер умрет до комплита потока.
источник

VR

ViTO Rossonero in ReactiveX - русскоговорящее сообщество
все почти так, только не для потока из io шедулера, насколько я помню этот поток может завершится позже чем вся зашедуленная на нем работа зершится(т.е. произойдет отписка)
источник

VR

ViTO Rossonero in ReactiveX - русскоговорящее сообщество
или "до комплита потока." имелось ввиду до комплита rx стрима?
источник

А

Андрей in ReactiveX - русскоговорящее сообщество
да
источник

AD

Andrew Dementiev in ReactiveX - русскоговорящее сообщество
Igor Komarov
Лучше курсор сразу распарсить и закрыть, при том закрывать его по-хорошему нужно в finally
а если в базе столько записей, что программа по ООМ упадёт? пост ниже про альтернативу читал, прост мнение интересно
источник

GR

Grigory Rylov in ReactiveX - русскоговорящее сообщество
Igor Komarov
Лучше курсор сразу распарсить и закрыть, при том закрывать его по-хорошему нужно в finally
У меня задача отображать небольшое скролящееся окошко из большого куска данных, не хочется все в памяти держать, курсор адаптер, как мне кажется, тут идеален.
источник

AD

Andrew Dementiev in ReactiveX - русскоговорящее сообщество
Grigory Rylov
У меня задача отображать небольшое скролящееся окошко из большого куска данных, не хочется все в памяти держать, курсор адаптер, как мне кажется, тут идеален.
вообще, есть вариант, но он нарушает принцип layered architecture, обернуть доступ к таблице в реализацию List<T> со внутренним кэшем, скажем записей на 50 и отслеживать положение окна виртуализации внутри, и как подходишь к границам - создавать запрос в бд с курсором, читать, конвертить, закрывать курсор. Тоесть имеем БД адаптер, который снаружи выглядит как лист. Из плюсов - последовательный доступ быстрый как из памяти, рандомный - жопа. Только его надо через какую-то фабрику создавать. Можно даже страничное кэширование наладить с перекрытием страниц и при переходе в один буфер загружать во второй. Я всё никак не собирусь такой написать, работы чёртова куча, а отпуска не придвидится под это дело.
источник

AD

Andrew Dementiev in ReactiveX - русскоговорящее сообщество
тут правд ещё стоит вопрос записи, её по хорошему фоном делать надо и через буфер, нужно проверять окно виртуализации, не попал ли новый элемент в него
источник

GR

Grigory Rylov in ReactiveX - русскоговорящее сообщество
Andrew Dementiev
вообще, есть вариант, но он нарушает принцип layered architecture, обернуть доступ к таблице в реализацию List<T> со внутренним кэшем, скажем записей на 50 и отслеживать положение окна виртуализации внутри, и как подходишь к границам - создавать запрос в бд с курсором, читать, конвертить, закрывать курсор. Тоесть имеем БД адаптер, который снаружи выглядит как лист. Из плюсов - последовательный доступ быстрый как из памяти, рандомный - жопа. Только его надо через какую-то фабрику создавать. Можно даже страничное кэширование наладить с перекрытием страниц и при переходе в один буфер загружать во второй. Я всё никак не собирусь такой написать, работы чёртова куча, а отпуска не придвидится под это дело.
ну не знаю, зачем накладные расходы на селекты постоянные при сдвиге окна, когда один раз сформировал запрос и двигайся по курсору, главное не забыть закрыть. Так то я обернул List<T>, Closeable
источник