
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, но там где произошло исключение эммитить уже никогда не будут, правильно же?

Seraphim
13.10.2016
07:15:29

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
Ну захватил ссылку на класс, а как без этого?
Он же завершит свою работу и пропадет?

Seraphim
13.10.2016
07:41:58

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

Gerc
13.10.2016
07:44:47

Google

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

Gundabadec
13.10.2016
07:45:22

Seraphim
13.10.2016
07:45:36

Gerc
13.10.2016
07:45:49

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

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

Gerc
13.10.2016
07:48:42

Seraphim
13.10.2016
07:48:58

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

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:06

Gerc
13.10.2016
07:55:26

Seraphim
13.10.2016
07:55:43

Vitaly
13.10.2016
07:55:57

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

Google

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

Gerc
13.10.2016
07:58:32

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
конечно можно, в любом банковском приложении банкоматы сортируются именно по близости
а, тогда надо чтобы тебе сервер сортировал, так будет удобнее
ты серверу свои текущие координаты а он тебе уже пусть отдает сортированное

Vitaly
13.10.2016
08:34:42

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

Alexey
13.10.2016
08:35:10

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