@android_ru

Страница 293 из 3205
Seraphim
25.09.2016
13:49:25
Я сам писал на лоадерах и там ради простых вещей приходилось писать просто тонны кода. Мап + фильтр + сортировка минимум в сотню строк выходило. А дрочка с попыткой кастомизировать входные условия до сих пор в дрожь бросает

Я ни разу не видел как "тру" кодеры делают у себя асинхронщину. Как они одновременно запускают сервер, бд и кэш, как их обрабатывают одинаковым образом, как получают, например, только первый пришедший результат, как ошибки обрабатывают. За Rx я это сделаю в 10-15 строк. А во сколько сделают они? В 100? 200? Больше?

Почему-то всегда "фи, rx херня". Так покажите что не херня. Кому-то тут пару дней назад из-за rx хипстеров "не хватало тредов для приложения". Очень интересное утверждение

Google
Sergey
25.09.2016
13:57:02
Сортировка, фильтрация и маппинг с помощью Guava делаются в несколько строчек, какие сотни?

Rtem
25.09.2016
13:57:54
Хз чего там про треды. Мы проводили эксперименты на 5м нексусе. Зациклили создание тредов и хотели проверить что будет. Как раз на фоне утверждений про “треды rx”. Приложение создало 670+ потоков и смартфон перезагрузился =)

Sergey
25.09.2016
13:58:00
> @lonecat Guava тащит десятки тысячь методов

Sergey
25.09.2016
13:58:45
> @FuriousSeraphim 19к почти 2 десятка )

Rtem
25.09.2016
14:00:22
Может и есть какой кейс, но я никогда его не ловил.

2GIS что-то говорили про это, но мы так и не смогли повторить.

Seraphim
25.09.2016
14:01:39
2GIS, на сколько я знаю, фигачат вообще всё на С++))

Rtem
25.09.2016
14:02:36
Ходят такие слухи, но есть стааарая статья на хабре, где они писали про Rx

При чем про RxJava

Google
Rtem
25.09.2016
14:02:59
Может они не научились его готовить и пошли на cpp писать)))

Rtem
25.09.2016
14:03:53
Есть, но писали то про java

я ж уточнил)

Yuri
25.09.2016
14:04:10
На Натан у них карты. А вот в дайлере они рх используют

Rtem
25.09.2016
14:04:26
Вот да. Они про дайлер писали. Точно

Yuri
25.09.2016
14:04:29
На нативе*

Seraphim
25.09.2016
14:04:54
На нативе*
Тут редактировать сообщение можно)

Yuri
25.09.2016
14:05:44
Через лонг клик не увидел что можно отреагировать. А на обычный клик даже не подумал ?

Gerc
25.09.2016
14:19:05
Да даже там нужно фильтровать, мапить, сортировать
для сортировки там и там писать компаратор, для мапы там и там метод мапинга моделей писать, для фильтрации циклом пройтись

Seraphim
25.09.2016
14:24:33
мне не хватало. https://habrahabr.ru/company/2gis/blog/228125/ вот
Интересно, как это ты понял, что у тебя тредов не хватает, если человек выше(не я) говорит, что они смогли насоздавать 600+ тредов?

Rtem
25.09.2016
14:25:05
670+, я попросил бы ))))

На референсном Nexus 5

Seraphim
25.09.2016
14:25:29
неправильно работал
Ну и я могу сказать, что ты с Rx не правильно работаешь. Это всё ещё не аргумент

Alexey
25.09.2016
14:25:37
Кажется в этом чате я постоянно вижу великое противостояние добра и зла, @FuriousSeraphim и @gercqq. Да именно великий холивар!?

У лоадеров API не удобный имхо, много бойлерплейта в отличии от рх

Google
Seraphim
25.09.2016
14:29:40
Кажется в этом чате я постоянно вижу великое противостояние добра и зла, @FuriousSeraphim и @gercqq. Да именно великий холивар!?
Я всего лишь хочу хоть раз в жизни услышать конкретное обоснование почему Rx плох и какие есть ему реальные альтернативы. Такие же гибкие и мощные, без сотен строк кода на простейшие вещи

Rtem
25.09.2016
14:30:43
Просто кто-то привык юзать лоадеры, написал кучу раперов и хелперов под это дело. Таскает их из проекта в проект и ему ок.

Alexey
25.09.2016
14:31:40
Да нет их. Не заморачивайся ты так сильно. Всем нравится разное =)
2 чая этому господину. P.s. откуда пошло это выражение?

Rtem
25.09.2016
14:32:03
а фиг знает если честно ) Я в каком-то подкасте “подцепил” ))

позабавило

Yuri
25.09.2016
14:38:26
Сравнивать лоадеры и rx — это как сравнивать холодное с мягким ? одни нужны для асинронщины, другие для работы с потоками данных. Rx внутри лоадеров можно использовать не напрягаясь, и получая только удовольствие.

Gerc
25.09.2016
14:38:47
Я всего лишь хочу хоть раз в жизни услышать конкретное обоснование почему Rx плох и какие есть ему реальные альтернативы. Такие же гибкие и мощные, без сотен строк кода на простейшие вещи
Проблема OOM. Наивно полагать, что Android может дать много тредов для многопоточной работы. При количестве тредов больше 15, даже топовые смартфоны начинали “задумываться”, а их мелкие собратья и вовсе падали с OutOfMemoryError. Решение было простым. Ввести CachedThreadPool для этих дел и проблема решена. Кэширование запросов. Речь не про оператор cache() из примера выше. Хотелось бы, чтобы следующий запрос на тот же самый url сразу брался из кэша. В RxJava такого нет. В принципе это правильно, потому что реактивность и кэш — две разные вещи. Поэтому мы написали свой кэш. вырезка из статьи 2гис

Gerc
25.09.2016
14:42:25
“задумываться”, а не перезагружаться у них написанно

и вы наверно пустые потоки одноразавые создавали

а у них все кучей работали

Rtem
25.09.2016
14:43:50
и вы наверно пустые потоки одноразавые создавали
Не совсем пустые. С простой математикой. И они не умирали. Т.е. 670 это одновременно работающих потоков.

В любом случае - проведите эксперимент сами

О чем мы спорим?

Seraphim
25.09.2016
14:46:09
Единственный мой в жизни ООМ я поймал, когда пытался с bitmap шаманить ещё до Picasso и Glide(тупо не знал о них). Я обрезал и накладывал блюр на фотку. ООМ я пофиксил и больше никогда его не ловил(при том, что тестил тогда на Galaxy Ace 2)

Google
Gerc
25.09.2016
15:02:48
ахаха

у меня есть нексус 5

Alexey
25.09.2016
15:15:01
На android 2 и 4 OOM и постоянные GC реально были головной болью. Никакие Picasso с UIL'ами не спасали. А glide относительно недавно появился

Andre
25.09.2016
15:21:34
А я знаю, как в телеграме словить оом: нужен пост из 100+ эмодзи

batyamedic
25.09.2016
15:22:54
у меня телега крашнулась от того что я быстро пролистал список со стикерами

Admin
ERROR: S client not available

Alexey
25.09.2016
15:33:38
В последних версиях билд тулзов lint, кстати, ругается, когда application context выносишь в статик. Мол, memory leak и не совместимо с instant run. Момента с memory leak я особо не понял

Seraphim
25.09.2016
15:48:26
Alexey
25.09.2016
15:51:27
Тоже так показалось. Но сейчас, на всякий случай, нагуглил себе статью с причинами, почему всё же app context в статике - плохо http://www.philosophicalhacker.com/2015/07/14/why-static-references-to-application-contexts-are-probably-not-the-best-idea/

Yuri
25.09.2016
17:06:50
Впринципе, из этой статьи если выкинуть слово static, то ровным счетом ничего не изменится. Вам так не кажется? Сильно в статью не вчитывался

Denis
25.09.2016
19:09:13
``` With this signature you have a hint that maybe this method uses a Toast to display the string. ``` хоспади, какой пизд*ц ( >_\) там вся статья такая что ли?..

Alexey
25.09.2016
19:10:36
в этой фразе

она вырвана из контекста определено

контекста аппликейшена или чего там ')))

Denis
25.09.2016
19:18:38
что не так?
hint и maybe. бред сивой кобыла. прям битва экстрасенсов, а не разработка

она вырвана из контекста определено
как и метод в этом примере

Google
Alexey
25.09.2016
19:38:02
ребят, кто мне объяснит одну простую вещь. не понимаю в чем плюс immutable ? Это ж пиздец каждый раз когда хотим что-то поменять у объекта, мы вынуждены создавать новый, напрягая сборщик мусора чтобы он старый сгреб.

не проще ли поменять поле объекта чем создавать новый объект?

Seraphim
25.09.2016
19:51:18
ребят, кто мне объяснит одну простую вещь. не понимаю в чем плюс immutable ? Это ж пиздец каждый раз когда хотим что-то поменять у объекта, мы вынуждены создавать новый, напрягая сборщик мусора чтобы он старый сгреб.
Да всё очень просто. Большая часть - это отображение каких-то данных. Для этого им не нужно быть mutable. Если речь идёт о редактировании чего-то, то я обычно всю ранее зполненную инфу загоняю во вьюхи(всё равно придётся) и по нажатию подтверждения собираю данные(всё равно придётся), проверяю(опять же всё равно придётся), собираю в объект и отправляю

Иван
25.09.2016
19:55:10
Создание таких объектов довольно легко позволяет гарантировать себе простую жизнь в мультипотоке. А там уж смотря что пишешь

Seraphim
25.09.2016
19:55:14
а если оффлайн приложение? я например чекбоксом меняю стейт
Ну понятное дело зависит от задач. У меня всё таки 95% полей immutable. Никакого дискомфорта пока не встречал. Это опять же дело вкуса

Denis
25.09.2016
20:25:45
вот еще были бы удобные языковые конструкции для поддержки иммутабельности

типа obj.mutate { it.field1 = nnn; it.field2 = yyy }

а то lenses редко где красиво выглядят

Alexey
25.09.2016
20:40:47
Мне ужасно стыдно
По поводу чего?

Владимир
26.09.2016
03:24:46
интересно часто бывает что play market зависает при установке или оновлении приложения? просто не идет загрузка и все, а на устройстве браузер и т.п. работает. Кто встречал такую проблему и как решали?

Максим
26.09.2016
03:25:07
+

Никак

Владимир
26.09.2016
03:25:40
ребут?

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