@android_ru

Страница 404 из 3205
Alexandr
13.10.2016
07:04:59
я как раз null эмитил, выглядело костыльно, но не хотелось юзать обертки никакие, null являлся частью логики

Alexey
13.10.2016
07:05:07
@FuriousSeraphim не, null часто вполне валидое значение, означающее временное отсутствие объекта или ещё что-то такое, что null может означать. Эксепшн тут не к месту, лучше свою обертку придумать

Seraphim
13.10.2016
07:06:38
При проверке наличия обновлений проверяю lastUpdate и если он равен моему локальному, сбрасываю UpdateNotNeedException и дальше цепочка не выполняется. Удобно

Google
Alexandr
13.10.2016
07:09:26
@FuriousSeraphim наверно ты просто умеешь хорошо готовить кастомные эксепшены, у меня никак не зайдет с ними

Alexey
13.10.2016
07:10:27
@FuriousSeraphim onError/onComplete ведь терминальные события, иногда очень не хочется на null завершаться

Seraphim
13.10.2016
07:11:02
class UpdateNotNeedException : RuntimeException() Да вроде как ничего особого. Просто кастомный класс

Alexandr
13.10.2016
07:12:10
@FuriousSeraphim да не, я не про сами классы эксепшенов, а об умении правильно применить как раз эти самые onErrorXXX

Seraphim
13.10.2016
07:12:15
У flatMap есть onError + onComplete функции

Alexandr
13.10.2016
07:13:45
эти операторы же могут кинуть другие observable, но там где произошло исключение эммитить уже никогда не будут, правильно же?

Alexandr
13.10.2016
07:18:18
да, можно и просто объект, но observable, который кинул эксепшен уже не эммитит

например, какой нибудь сенсор может и null заэмитить, если кинуть эксепшен, то как потом его слушать?

Seraphim
13.10.2016
07:27:29
retryWhen { flatMap { } }

Если Exception ожидаемый, можно вернуть какой-то результат. Если нет - кинуть ошибку дальше

retryWhen переподпишется и эмиты будут идти дальше

Google
Alexandr
13.10.2016
07:32:15
спасибо, не знал, что retryWhen переподпиывает

заигнорить проще оператором filter наверное

в конкретном примере

Seraphim
13.10.2016
07:33:06
Тоже верно

Gerc
13.10.2016
07:39:46
Больше операторов навешать, больше ссылок захватить на внешний класс анонимными листенерами операторов!

Gundabadec
13.10.2016
07:41:34
Ну захватил ссылку на класс, а как без этого?

Он же завершит свою работу и пропадет?

Gerc
13.10.2016
07:42:11
Не

Artem
13.10.2016
07:42:30
Пиши на С
Лучше на лиспе

Лисп всему голова

Gerc
13.10.2016
07:42:40
Началось

Ivan
13.10.2016
07:42:42
Brainfuck

Seraphim
13.10.2016
07:42:52
На хаскеле жарить

Gundabadec
13.10.2016
07:43:34
Разъясните, почему анонимным класса нельзя давать ссылку?

Точнее чем они плохи если захватят ссылку

Seraphim
13.10.2016
07:44:02
@gercqq писать операторов и анонимных классов нужно столько, чтобы решить задачу. Не хочешь - не пиши. Никто тебя не завтавляет

Точнее чем они плохи если захватят ссылку
Да ничем. Если они не хватают ссылку на view, то вообще насрать

Google
Alexandr
13.10.2016
07:45:18
@gercqq если например нужно отфильтровать null в эммитах

Gundabadec
13.10.2016
07:45:22
Да ничем. Если они не хватают ссылку на view, то вообще насрать
Да хоть и view. Перед взаимодействием с view проверьте на null и все

Seraphim
13.10.2016
07:45:36
В чем там нужность оператора фильтра была?
Ты решил докопаться до обычного примера, в котором не капли бизнес-логики? Совсем аргументов нет?

Презентеры у тебя без вью?
У меня презентеры с WeakRef

Gerc
13.10.2016
07:45:49
@gercqq если например нужно отфильтровать null в эммитах
В коде же ифом был фильтр, чем он хуже?

Artem
13.10.2016
07:46:10
Началось
Скажи спасибо, что не на котлине

Seraphim
13.10.2016
07:46:25
Alexandr
13.10.2016
07:46:51
@gercqq fromArray(1,2,3).filter(r -> r!=2)

компактнее же

Gundabadec
13.10.2016
07:48:09
Мля, что за базар

Как собаки

Seraphim
13.10.2016
07:48:33
Мля, что за базар
RxJava triggered. Всё просто

Gundabadec
13.10.2016
07:48:37
Мерятся письками

Gerc
13.10.2016
07:48:42
У меня презентеры с WeakRef
И при перевороте/сворачивании останавливаешь все запросы?

Gerc
13.10.2016
07:49:13
Seraphim
13.10.2016
07:49:19
В презентере

Gerc
13.10.2016
07:49:51
В презентере
Презентер синглтоном чтоли?

Seraphim
13.10.2016
07:50:07
Да

Раньше останавливал и ремувил презентер. Теперь он живёт и ждёт пока вьюха очухается

Google
Gundabadec
13.10.2016
07:51:27
Разборки джунов?

20$ на Серафима

Seraphim
13.10.2016
07:51:50
Срачи за архитектуру - святое

Истина рождется в споре

Roman
13.10.2016
07:52:51
Читаю вас и чувствую себя нубом. Работаю больше года, но без этих mvp, rx, dagger и т.п. ? Надо срочно подтягивать знания

Admin
ERROR: S client not available

Seraphim
13.10.2016
07:53:26
Читаю вас и чувствую себя нубом. Работаю больше года, но без этих mvp, rx, dagger и т.п. ? Надо срочно подтягивать знания
Если тебе и без них норм, то не обязательно кидаться на амбразуру и срочно их учить

Alexey
13.10.2016
07:53:43
Кстати в rx каждый оператор создает новый обсервабл?

Seraphim
13.10.2016
07:53:47
Но ознакомиться, конечно, стоит

Gundabadec
13.10.2016
07:54:11
Серафим ты на работе сейчас?

Gerc
13.10.2016
07:54:21
Аааа. Теперь понятно зачем даггер тащят просто так, без тестов! Чтоб красиво делать синглтоны презентеров, тем самым оправдать костыль модной библиотекой инъекций!!! ?

Roman
13.10.2016
07:54:48
Я единственное что - смысла даггера не понимаю. Куда-то инжектит какие-то зависимости. Wtf вообще - зачем?

Seraphim
13.10.2016
07:55:43
А КАК?
new Presenter();

Vitaly
13.10.2016
07:55:57
Я единственное что - смысла даггера не понимаю. Куда-то инжектит какие-то зависимости. Wtf вообще - зачем?
Чего не понятного. Есть паттерн (подход) - предоставление зависимости програмнмому компоненту, даггер просто помогает этот подход красиво реализовать

Alexandr
13.10.2016
07:56:02
@sytnyk_r гуглите по ключевам словам Dependency Injection, Inversion of Control

Roman
13.10.2016
07:56:10
Спасибо

Gerc
13.10.2016
07:56:54
new Presenter();
Ты же сказал синглтоном они

Google
Seraphim
13.10.2016
07:58:01
Ты же сказал синглтоном они
Есть некое хранилище. Сначала проверяется наличие презентера там. Если его не оказалось, то у фрагмента вызывается метод, который создаёт новый. Дальше он аттачится и понеслось-завертелось

Seraphim
13.10.2016
07:59:11
Зачем даггер тогда?
Инжектить зависимости, очевидно. У него и без презенторов работы дохренища

Gerc
13.10.2016
07:59:49
Как всегда

Seraphim
13.10.2016
08:01:54
Бд, ворох разных апи, общие компоненты, хелперы. У меня на котлине класс Injector и так распух почти до 200 строк

А проект не самый большой

Это без учёта того, что я не упарывался в оптимизицию и переиспользование многих модулей

Alexandr
13.10.2016
08:02:33
@gercqq есть такой термин "внедрение зависимостей для бедных" это когда реализуешь DI, при этом не используешь контейнеры IoC, DI фреймворки - это допустимо конечно, но не совсем удобно, это миф, что DI нужен только для тестов

Seraphim
13.10.2016
08:03:36
У меня почти каждый компонент создаёт свои инстансы модулей, хотя их можно переиспользовать

Alexey
13.10.2016
08:32:56
конечно можно, в любом банковском приложении банкоматы сортируются именно по близости

а, тогда надо чтобы тебе сервер сортировал, так будет удобнее

ты серверу свои текущие координаты а он тебе уже пусть отдает сортированное

Seraphim
13.10.2016
08:34:51
Да, это работа сервера. По идее ты ему должен лишь координаты и радиус отдать, а он тебе список

Alexey
13.10.2016
08:35:10
Vitaly
13.10.2016
08:35:10
Если тебе севрер отдает все и сразу, то и показывать так-же. Если и бить - то на back end'e

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