Комментарии 4
А можете пояснить, бывает ли соответствие Action и Reducer не 1 к 1? Если нет, то какой смысл разделения этих слоёв?
Соответствие Action, State и Reducer 1 к 1 или 1 к многим - это тема для большой отдельной статьи. Как-нибудь доберемся до нее и расскажем какие соглашения действуют у нас. Но потенциально это, конечно, возможно, чтобы один Action обрабатывался в двух разных Reducer. Как пример приведу example-проект для The Composable Architecture. Вот тут на 50-ой строчке appReducer ловит Action успешного логина и стартует игру. Этот же Action ловится и в loginReducer из модуля LogicCore.
А что вы подразумеваете под разделением слоев в случае Action и Reducer? Мы воспринимаем и Action и Reducer как часть доменной логики приложения, поэтому всегда кладем их в доменный слой.
Типичное приложение на редуксе выглядит как простыня передачи вызовов без их обработки, что, как по мне, довольно бессмысленно.
Спорить об архитектурах можно бесконечно, как по мне - топик зашел. У ребят были определенные боли - они их решили. Да, идеальной архитектуры нет, но ее задача в первую очередь решать проблемы. Если взять тот же MVVM - там можно еще большую простыню сотворить :) В концепте единого стейта - есть своя прелесть как не крути.
Реализация Unidirectional Data Flow в супераппе. Часть I