214 похожих чатов

Привет. Сорри, если уже было, киньте в меня ссылками, если

что. :)
Как бы по вашему мнению бы следовало решать навигацию между экранами?
Нынешняя архитектура - мввм со стэйтами, навигация на основании состояния запускается через вью модели.
У коллеги возникла идея передвинуть переходы (через интерфейс, разумеется) на бизнес уровень, прям в юз кейс. Аргументирует это тем, что переходы между экранами/окнами на всех платформах, мол, одинаковые, это часть бизнес логики, куда после чего идти, а вьюмодел только стэйт пусть помогает отображать.

13 ответов

12 просмотров

А бизнес логике разве важно на каком экране что отображается?

Ju- Автор вопроса
Artem Osipov
А бизнес логике разве важно на каком экране что от...

В том-то и дело, что все привыкли считать, что нет. Я тоже так считаю, спорим вот. С другой стороны, вью модели в идеале не должны ничего знать о других экранах. Вот и спрашиваю, интересно, как другие это решают. :)

Ju
В том-то и дело, что все привыкли считать, что нет...

роутинг является бизнес логикой, и как раз таки роутеры могут быть вынесены.

Ju- Автор вопроса
Daniil Tsaryov
роутинг является бизнес логикой, и как раз таки ро...

Это понятно, вопрос на каком уровне их объединить. Я бы сделала отдельно роутер и отдельно юз кейс для данных, мерджнула их во вью модели. Он же, получается, роутер в юз кейс засунул, грубо говоря.

Ju
Это понятно, вопрос на каком уровне их объединить....

На мой взгляд юз кейс не должен знать про роутинг, сам роутинг может быть следствием юз кейс, но не в жёсткой с ним связке. Имхо, поместить роутер и юзкейс/интерактор во вью модель это окей

Ju- Автор вопроса
Daniil Tsaryov
На мой взгляд юз кейс не должен знать про роутинг,...

Спасибо. :) Теперь, надеюсь, будем спорить, как именно их объединять, но это уже совсем другая история.

Ju
Это понятно, вопрос на каком уровне их объединить....

А роутер в виде activity уже не модно нынче применять? Через колбэк с фрагмента отправлять код события и пусть activity решает что делать дальше

Ju
Спасибо. :) Теперь, надеюсь, будем спорить, как им...

Роутинг лучше всего выполнять на Presentation слое (не на domain). Потому что навигация относится больше к инфраструктуре, чем к бизнес правилам. И лучше его делать через делегирующий объект

Jorik Fat
Роутинг лучше всего выполнять на Presentation слое...

Наверное это очень просто гуглится, если знать как гуглить, но. Не могли бы поделиться ссылкой на код, где навигация сделана посредством делегирующего объекта, пожалуйста?

Ju- Автор вопроса
Руслан
А роутер в виде activity уже не модно нынче примен...

Это было бы удобно, если бы приложение было с одной активити. Сейчас же оно поделено на фичур модули, у каждого своя активити. Я бы даже не колбэк посылала, а ивент бас какой, и в активити бы на него подписалась. Только не очень представляю, как это делать с большим количеством активити, я привыкла к архитектуре с одной мэйн (ну, и логин там какой или регистрация отдельно со своей навигацией).

Ju- Автор вопроса
Jorik Fat
Роутинг лучше всего выполнять на Presentation слое...

Вообще, именно это является основной причиной спора. Мне тоже кажется, что навигация - это просто инфраструктура. Оппонент же утверждает, что с точки зрения бизнеса *важно*, куда пользователь перейдет после того или иного действия, более того, на всех платформах переходы в принципе будут одинаковые, потому что так этого хочет бизнес. И, мол, если когда-нибудь бы перейдем на KMM (даже речи быть не может, как по мне, это решение надо было принимать год назад), то у нас уже всё будет готово, в том числе общая навигация.

Ju
Вообще, именно это является основной причиной спор...

А потом придут дезигнеры и нарисуют новую красивую навигацию. И можно будет переделывать бизнес-логику 😁

Ju
Это было бы удобно, если бы приложение было с одно...

если у Вас бизнесу важно как происходит навигация - значит у Вас некорректно выделены слои. Так как домен может быть переиспользован между несколькими приложениями

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта