@android_ru

Страница 189 из 3205
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
Два потока одновременно продуцируют объекты, надо добавить их в один список
так действительно же с rx эта задача решается парой строчек, а так руками все писать надо

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
только код становится нечитаемым
Наоборот читаемый, попробуй rx без неё поюзать, код в лапшу превратится.

Alexey
09.09.2016
17:18:34
В Каллбекхелл
Ну это и есть лапша? Доширак

Gregory
09.09.2016
17:20:22
Все в барах смузи пьют и смотрят на ифон презентацию
и оправдывают эпл в выпиливании разъёма

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
конечно красота чистых функций пропадает...но это другая история

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
Енумы жрут

Страница 189 из 3205