
Vitaliy
09.09.2016
16:54:40
Ну допустим задача такая
Из недавнего

Gregory
09.09.2016
16:54:55
задачи такого уровня ты сам себе ставишь, не так ли

Vitaliy
09.09.2016
16:54:56
И это не мой вопрос, если что :)

Google

Vitaliy
09.09.2016
16:55:11
Просто типичный вопрос по Rx

Gregory
09.09.2016
16:55:17
я не могу представить, в каком случае такую маленькую хреньку может понадобиться делать асинхронно

Vitaliy
09.09.2016
16:55:45
Хотя это делается обычной синхронизацией, лол

Gregory
09.09.2016
16:56:20
вот тебе смержить два листа:
public ArrayList merge(List a, List b){
ArrayList result=new ArrayList();
result.addAll(a);
result.addAll(b);
return result;
}

Vitaliy
09.09.2016
16:59:12
Два потока одновременно продуцируют объекты, надо добавить их в один список
Вот тебе и вся задача

Gregory
09.09.2016
16:59:33
ну так синхронизировать через барьер

Vitaliy
09.09.2016
17:00:15
По-моему, ты слишком много на си начал писать
Это уже не смешно

Gregory
09.09.2016
17:02:46
я и не пытаюсь быть смешным, я просто говорю, как решал бы такую задачу

Roman
09.09.2016
17:07:50

Vitaliy
09.09.2016
17:08:19
Там нужно несколкко операторов применить

Google

Vitaliy
09.09.2016
17:08:33
А в обычной джаве просто в syncronized-блок обернуть
Имхо, строчек в джаве меньше. Но Rx я не знаю, так что если это не так — послушаю

Gerc
09.09.2016
17:10:08
Все в барах смузи пьют и смотрят на ифон презентацию

Roman
09.09.2016
17:10:28
один оператор

Sergey
09.09.2016
17:10:35
.combineLatest для двоих observable, если я правильно вас понял

Roman
09.09.2016
17:10:42
и ничего не надо делать больше

Artem
09.09.2016
17:11:58
Roman Chernyak, [09.09.16 20:10]
и ничего не надо делать больше
+

Alexey
09.09.2016
17:17:07

Gerc
09.09.2016
17:17:37

Alexey
09.09.2016
17:18:34

Gregory
09.09.2016
17:20:22

Roman
09.09.2016
17:22:05

Gregory
09.09.2016
17:22:28
ведь это же такие инновации, всем давно пора перейти на блютус, кококо

Roman
09.09.2016
17:26:30
Напишите что в лямбды передаются интерфейсы с единственным методом, где там можно запутаться вообще)

Gerc
09.09.2016
17:31:06
Вот да, все-таки лямбды плохо, я только что понял, хотя хотел использовать
И не именно изза одного метода без аргументов
Связанно с ОЗУ

Sergey
09.09.2016
17:34:09
А что с озу?
Лямбда же просто анонимный клас

Google

Vitaliy
09.09.2016
17:34:48
Это функтор
Не класс, а объект
Больше объектов — чаще GC

Sergey
09.09.2016
17:35:06
Да

Vitaliy
09.09.2016
17:35:29
Я даже итерироваться стараюсь с индексами, если нет особой нужды

Stas
09.09.2016
17:35:47
Мне кажется для андроида это не актуальны проблемы с кучей объектов
памяти много, гугл не особо парится на этот счет

Vitaliy
09.09.2016
17:36:06
Ну почти все приложения в Goiolge Play тормозят
Так что

Sergey
09.09.2016
17:36:36
А в чем разница написать лямбду и анонимный объект? Да их не надо юзать в циклах

Vitaliy
09.09.2016
17:37:08
Ну для меня вот никакой, и то, и то надо использовать с умом, и все будет ок. Только лямбды удобнее

Sergey
09.09.2016
17:37:28
Согласен

Sergey
09.09.2016
17:37:38
Я юзаю лямбды

Stas
09.09.2016
17:38:23
Иногда, когда реализуешь какой-нибудь filter: Object ->Bool, нужно помнить предыдущие элементы. Тут лямбды не помогут, нужен класс с полем

Gerc
09.09.2016
17:38:42
А что с озу?
А то что я могу в класс интерфейса положить много методов без аргументов и захватить одну лишь ссылку объекта, реализующего этот интерфейс, а лямдой на каждый метод по интерфейсу делать и столько же захватится ссылок

Stas
09.09.2016
17:38:43
конечно красота чистых функций пропадает...но это другая история

Sergey
09.09.2016
17:40:13

Stas
09.09.2016
17:40:44
Ну да, просто пример, когда нужен анонимный класс

Sergey
09.09.2016
17:40:59
Они для интерфейсов с одним методом

Gerc
09.09.2016
17:40:59

Google

Stas
09.09.2016
17:41:28
Так filter и есть интерфейс. Простой предикат

Gerc
09.09.2016
17:41:38

Sergey
09.09.2016
17:42:00

Gerc
09.09.2016
17:42:10
Я не про цикл

Stas
09.09.2016
17:42:13
Да, на счет захвата ты прав. Анонимные классы тоже имеют ссылку на this

Gerc
09.09.2016
17:42:19
Ее вообще не стоит

Sergey
09.09.2016
17:42:45
Не явная ссылка на парента

Gerc
09.09.2016
17:43:20
Вот и вспомнили сегодня Java

Stas
09.09.2016
17:43:55
К слову о лямбдях, тут есть скалисты под android?
кто-нибудь в продакшене юзал?

Admin
ERROR: S client not available

Sergey
09.09.2016
17:44:10
Я

Stas
09.09.2016
17:44:26
Вот где ram проседяет)

Sergey
09.09.2016
17:44:49
?
Как setOnClickListener() с лямбдой съесть память )

Stas
09.09.2016
17:46:26
эм..а при чем тут скала?

Sergey
09.09.2016
17:46:43
Скала?

Stas
09.09.2016
17:47:02
опечатка
скалисты

Sergey
09.09.2016
17:47:28
А тогда я не туда ))

Google

Sergey
09.09.2016
17:47:39
Не увидел скалистов )
Не, я джавист и котлинист

Gerc
09.09.2016
17:48:36
Жвмщик

Sergey
09.09.2016
17:49:06
Тогда далвикист и "артист"

Александр
09.09.2016
17:55:42
Ребята, есть ТЗ , у кого можно проконсультироваться по тому сколько может занять времени написание приложения?

Alexey
09.09.2016
18:02:27

Pavel
09.09.2016
18:05:10

Stas
09.09.2016
18:20:17
есть ли смысл делать Handler 1 на проект? Часто надо что-то в очередь поставить

Vitaliy
09.09.2016
18:20:53
Часто нужно ещё что-то отменять из него

Stas
09.09.2016
18:20:57
из Ui потока в Ui

Vitaliy
09.09.2016
18:21:03
Поэтому по ситуации, имхо
Если есть ссылка на отменяемый Runnable, его можно передавать в глобальный
Если нет и удаляются все сообщения, то локально

Stas
09.09.2016
18:22:06
имею ввиду: не будет ли каких-то неожиданностей, если 1 handler сделать lazy singleton

Nikolay
09.09.2016
18:22:40
А зачем может понадобиться 1 Handler в проекте?

Vitaliy
09.09.2016
18:22:51
Ну та же экономия объектов, например
Это имеет смысл

Gerc
09.09.2016
18:23:06
Даггером зпинжекти как щас модно
А наверно и вправду инжектят

Nikolay
09.09.2016
18:24:18
А не получится экономии на спичках? Просто я не уверен что хендлер так много памяти занимает.

Александр
09.09.2016
18:24:20
статик класс, а в нём метод хэндлера

Nikolay
09.09.2016
18:25:18
Тогда уж модный singleton через enum.

Gerc
09.09.2016
18:25:57
Енумы жрут