Size: a a a

Android Architecture

2020 May 18

ФХ

Филадельфия Хачатуря... in Android Architecture
Добрый вечер, господа.
Такой вопрос: у меня есть OrderRepository и есть TenderRepository, каждый из них тянет свою модель из апи, но есть один метод в апи который отдает сразу две модели, Order и Tender. Как быть в такой ситуации? Делать отдельный репозиторий получается?
источник
2020 May 19

HR

Habanero Red in Android Architecture
А как он это делает? Прям вперемежку?
Или там все же есть своя модель типа { orders: [], tenders: [] }?
источник

В

Вася in Android Architecture
Подскажите пожалуйста . Есть два кеса . Первый - получение юзера с сервера и запись в бд. Второй - получение юзера с бд. Правильно ли будет ,если я создам для этой цели один usecase и в нем будет 2 паблик метода  getRemoteUser и getCachedUser. Спасибо
источник

AT

Amanzhol Tulepbayev in Android Architecture
два кейса - один юз кейс, уже как то противоречит)
источник

В

Вася in Android Architecture
Понял ,спасибо
источник

AC

Alexandr Chubryk in Android Architecture
вам сюда: https://t.me/android_ru
источник

I

Igor in Android Architecture
@Merseyside  это чат про архитектуру, почитайте описание чата.
Архитектурные компоненты - в другом чате, ссылку вам скинули
источник

AI

Arkadii Ivanov in Android Architecture
Имхо вопросы про всякие слои и разделение на "юз кейсы" имеют прямое отношение к архитектуре. Сам бы здесь спросил
источник

ФХ

Филадельфия Хачатуря... in Android Architecture
Habanero Red
А как он это делает? Прям вперемежку?
Или там все же есть своя модель типа { orders: [], tenders: [] }?
Да, {”tender":[], “order”:[]}
источник

HR

Habanero Red in Android Architecture
Филадельфия Хачатурян
Да, {”tender":[], “order”:[]}
Тогда мне кажется, это должен быть отдельный репозиторий. Хотя еще зависит от того, как он будет использоваться, т.е. имеет ли он смысл отдельно от OrderRepository и TenderRepository или всегда неразрывно с ними связан.
источник

ФХ

Филадельфия Хачатуря... in Android Architecture
Habanero Red
Тогда мне кажется, это должен быть отдельный репозиторий. Хотя еще зависит от того, как он будет использоваться, т.е. имеет ли он смысл отдельно от OrderRepository и TenderRepository или всегда неразрывно с ними связан.
Как понять неразрывно связан?
Ну при получении ответа нужно будет сохранить это все в бд
источник

HR

Habanero Red in Android Architecture
Филадельфия Хачатурян
Как понять неразрывно связан?
Ну при получении ответа нужно будет сохранить это все в бд
Ну то есть, если для одной фичи, например, нужны только Ордеры, а для другой фичи - вот эта моделька со списками Ордеров и Тендеров, тогда нормально разделить это по разным гейтвеям. А если всем фичам. работающим с ордерами всегда нужны будут 2 гейтвея, то имеет смысл объединить все в один. Надеюсь, понятно описал :)
источник

HR

Habanero Red in Android Architecture
Филадельфия Хачатурян
Как понять неразрывно связан?
Ну при получении ответа нужно будет сохранить это все в бд
А почему изначально возникло сомнение по поводу создания отдельного гейтвея? Если чисто из-за наличия одинаковых моделей там и там, то это вполне норм, модели могут использоваться в разных гейтвеях одни и те же.
источник

ФХ

Филадельфия Хачатуря... in Android Architecture
Habanero Red
А почему изначально возникло сомнение по поводу создания отдельного гейтвея? Если чисто из-за наличия одинаковых моделей там и там, то это вполне норм, модели могут использоваться в разных гейтвеях одни и те же.
Сомнение только из-за сохранения в бд
источник

HR

Habanero Red in Android Architecture
Филадельфия Хачатурян
Сомнение только из-за сохранения в бд
Сохранять в БД, насколько я понимаю, будет какой-то интерактор, через другой gateway (связанный с БД)? API гейтвеи не должны ничего знать про БД, и не должны зависеть от наличия или отсутствия сохранения в БД.
источник

ФХ

Филадельфия Хачатуря... in Android Architecture
Ну смотри есть TenderLocalDataSource(работа с бд) есть TenderRemoteDataSource(работа с апи) в TenderRepository подтягиваются эти дата сурсы и делают что нужно. Аналогично и для Order. Так вот в тендере приходит та заветная моделька которую нужно сохранить. Поэтому и вопрос такой. Я могу просто в TenderRepository прокинуть OrderLocalDataSource и сохранить, но правильно так делать?) @redhabanero
источник

HR

Habanero Red in Android Architecture
Филадельфия Хачатурян
Ну смотри есть TenderLocalDataSource(работа с бд) есть TenderRemoteDataSource(работа с апи) в TenderRepository подтягиваются эти дата сурсы и делают что нужно. Аналогично и для Order. Так вот в тендере приходит та заветная моделька которую нужно сохранить. Поэтому и вопрос такой. Я могу просто в TenderRepository прокинуть OrderLocalDataSource и сохранить, но правильно так делать?) @redhabanero
я что-то сам съехал на гейтвеи вместо репозиториев) А та заветная моделька к какому DataSource относится? Или она вынесена в отдельный? Само по себе наличие OrderLocalDataSource в TenderRepository будет выглядеть странно, я бы так не стал делать, имхо.
источник

ФХ

Филадельфия Хачатуря... in Android Architecture
Habanero Red
я что-то сам съехал на гейтвеи вместо репозиториев) А та заветная моделька к какому DataSource относится? Или она вынесена в отдельный? Само по себе наличие OrderLocalDataSource в TenderRepository будет выглядеть странно, я бы так не стал делать, имхо.
Модельку получает tender remote ds
источник

HR

Habanero Red in Android Architecture
А почему они вообще объединены на стороне сервера? Эта моделька имеет какое-то название?
Просто для меня Ордеры и Тендеры выглядят как несвязанные между собой объекты, поэтому и наличие обоих DataSource'ов в одном репозитории, и объединение их в одном запросе мне кажется неправильным. А может, оно и нормально, с точки зрения бизнес-логики.
источник

ФХ

Филадельфия Хачатуря... in Android Architecture
Habanero Red
А почему они вообще объединены на стороне сервера? Эта моделька имеет какое-то название?
Просто для меня Ордеры и Тендеры выглядят как несвязанные между собой объекты, поэтому и наличие обоих DataSource'ов в одном репозитории, и объединение их в одном запросе мне кажется неправильным. А может, оно и нормально, с точки зрения бизнес-логики.
Короче я вроде додумался.
Запихнуть Order во внутрь Tender (на сервере), а в приложении в TenderDao сделать saveTenderWithOrder
источник