Андрей
Ладно, понял. А чего в одном то?
да я про то, что слова "даггер" и "модный" в одном предложении не уместны) все про то же короче
Igor
Асинхронный код это всегда боль
You
Асинхронный код это всегда боль
Если смешивать его с синхронным
Андрей
Асинхронный код это всегда боль
скорее многопоточный, а не асинхронный
Igor
Если смешивать его с синхронным
Если смешивать его с логикой (ну да "логика" она обычно синхронная). Не умеет народ в "Decisions - Effects - Segregation", все мешают в кучу, а потом страдают.
Андрей
бойлерплейта СЛИШКОМ МНОГО кодогенерация, абсолютно невнятные ошибки
Daniil
Чувствую холиваром пахнет. На Reddit такой тред развели на тему DI vs ServiceLocator. Koin/Toothpick/Kodein vs Dagger 2.
You
Там js правда
Daniil
Аналогично. Каждому инструменту - свое место.
Akb
Кто-то сказал даггер?!
Akb
Akb
Нашел еще одну DI библиотеку Koin https://github.com/InsertKoinIO/koin
Igor
скорее многопоточный, а не асинхронный
Ну race conditions можно и в js получить. Тем более что асинхронный-код - явный признак, что делаются "сайд эффекты", а это уже большой минус к пониманию/детерменированности программы.
Akb
для труъ Котлин-девов
Igor
Akb
балин, всего-то месяц не заходил сюда
Андрей
Нашел еще одну DI библиотеку Koin https://github.com/InsertKoinIO/koin
а я думал криозаморозку еще не изобрели)
Олекс
Привет мужики
Андрей
для труъ Котлин-девов
у меня на прошлой работе в продакшне коин уже был, о чем ты вообще
Akb
у меня на прошлой работе в продакшне коин уже был, о чем ты вообще
ну мало, может кто не видел. а то думают, что кроме даггера ничего нету
Андрей
ну мало, может кто не видел. а то думают, что кроме даггера ничего нету
да тут Toothpick у многих в продакшне, о чем ты вообще)
Андрей
Андрей
после коина
Андрей
хотя в целом весьма похожи
Igor
Мне тоже (хотя я вообще считаю что DI не нужен)
Igor
В целом. DI не нужен, нужно просто разделять эффекты и логику и все будет очень просто и тестируемо (только в ооп с этим проблеммы(.
Daniil
Мне твое предложение напомнило недавнюю статью на хабре про RESS-архитектуру (https://habr.com/post/424081/)
Daniil
Там чувак пишет про то, что не нужны MVC/MVVM/VIPER и т.д.
Igor
Это очень ограниченный взгляд на вопрос. За пределами андроида жизнь тоже есть и там пишут не только ооп на джаве. Советую ознакомится с: - https://youtu.be/cxs7oLGrxQ4 , в виде статьи http://blog.ploeh.dk/2017/02/02/dependency-rejection/ - https://youtu.be/9zpG_hJsrL8
Mike
Реквестирую стикер «доведение до абсурда»
Daniil
https://www.gitignore.io/api/android
Mike
бест практис — не использовать реалм 😃
Mike
данные же имеет смысл читать подписками?..
Mike
тогда реалм сам принесёт обновления
Daniil
лень читать целиком, тезисы годные
Никто не заставляет использовать VIPER со всей его громоздкостью для одностраничного промо-приложения :) Для каждого приложения свои ограничения. Ну а в целом, если абстрагироваться, чувак описал MVC, где C - это Activity.
Mike
лучше сразу Rx, чтоб по полной)
Mike
+
так, а тебе-то чем не нравится?)
Kirill
Работа с потоками
Daniil
Да и вообще в любом приложение стоит задуматься "а нужно ли всю доменную сложность переносить на клиент?"
Опять же, если говорим про тупые REST - да, в большинстве случаев можно вынести все на бекенд (если он свой, конечно, а не кастомера). Если про более или менее самостоятельное приложение, а не thin-client, то без домена не обойтись.
Kirill
Не работает equals
Kirill
Так и сделал)
Kirill
Поменялось ли что-то
Igor
Опять же, если говорим про тупые REST - да, в большинстве случаев можно вынести все на бекенд (если он свой, конечно, а не кастомера). Если про более или менее самостоятельное приложение, а не thin-client, то без домена не обойтись.
Ну ты посмотри на facebook/instagram, да тот же телеграм - это же тупейший crud (да если же на сокетах). Да и инстаграм это отдельно подтвердил - выпустив Instagram Lite (просто webview).
Daniil
Ну ты посмотри на facebook/instagram, да тот же телеграм - это же тупейший crud (да если же на сокетах). Да и инстаграм это отдельно подтвердил - выпустив Instagram Lite (просто webview).
VoIP, AR/VR, ML - там нельзя обойтись бекендом. Не берусь утверждать, как сделано у FB, но те же фильтры в Instagram логичнее сделать на клиенте.
Kirill
Кто-то пробовал object box?
Igor
VoIP, AR/VR, ML - там нельзя обойтись бекендом. Не берусь утверждать, как сделано у FB, но те же фильтры в Instagram логичнее сделать на клиенте.
Там ML - это же просто обученная модель, которая вызывается одной функцией (ее же НЕ обучают на клиенте). Ну VoIP, AR/VR это же просто готовые библиотеки, это не архитектура (viper/mvp там дагеры)
Mike
Работа с потоками
ты делаешь что-то не так
Daniil
их логичнее сделать с обеих сторон :)
Ну я к тому, чтобы обработать фотку локально без сети. Зачем для этого лазить на сервер?
Андрей
на мосдроид сходил? xD
Андрей
ну парсить протобаф
Андрей
изменится все - ппц
Mike
протобаф — это вообще не про скорости
Андрей
протобаф — это вообще не про скорости
да и размер там не всегда намного меньше
Андрей
меньше жсона
Андрей
если мало данных ты и не заметишь
Igor
Ну я к тому, чтобы обработать фотку локально без сети. Зачем для этого лазить на сервер?
Смотри, вот псевдо-код 😏 это все что требуется от "клиента" fun addFilterOnPhone(model: MLModel, image: Image): Image = model.apply(image) "Архитектура" (на 100 модулей) тут не нужна. Все остальное сделали умные дяди и туже модель можно скачать с бэка.
Mike
меньше жсона
больше жсона только XML
Андрей
больше жсона только XML
если gzipped json, то разница невелика по сравнению с протобафом
Андрей
в память всё равно не gzipped загрузишь
по сети все равно слишком много данных вряд ли передавать будешь)
Mike
по сети все равно слишком много данных вряд ли передавать будешь)
к сожалению, будешь, если бизнесу будет нужно)
Андрей
к сожалению, будешь, если бизнесу будет нужно)
тогда протобаф тоже не подойдет и нужно придумывать что-то свое