Size: a a a

Programming Offtop

2020 August 15

Д

Денис in Programming Offtop
у меня по итогу придет мессадж топ уровня, который предполагает изменение состояние компонента, как дальше этот мессадж должен быть обработан?
источник

AD

Aleksey D. in Programming Offtop
имхо, у тебя сейчас реализация предполагает вкладывание одного стейта в другой - ок, но так не построить изоляцию
источник

Д

Денис in Programming Offtop
понимаю, потому и спрашиваю возможно ли ее построить в принципе?
источник

Д

Денис in Programming Offtop
когда мы имеем возможность на лету менять логику компонента, не очень мне это нравится, если это норм то ок
источник

AI

Arkadii Ivanov in Programming Offtop
Денис
у меня по итогу придет мессадж топ уровня, который предполагает изменение состояние компонента, как дальше этот мессадж должен быть обработан?
input.map(inputToMsg).subscribe(...)
источник

AI

Arkadii Ivanov in Programming Offtop
Msg это внутренний класс в модуле компонента. Input это публичное API компонента.
источник

Д

Денис in Programming Offtop
но мы все еще вручную должны определить куда этот msg передать на обработку?
источник

AI

Arkadii Ivanov in Programming Offtop
Денис
но мы все еще вручную должны определить куда этот msg передать на обработку?
Так это же часть архитектуры. Если используете MVICore то в фичу опютправлять.
источник

AI

Arkadii Ivanov in Programming Offtop
Или какой-то свой Store
источник

Д

Денис in Programming Offtop
но нет никакой защиты от того чтоб подменить обработку мессаджа?
источник

AI

Arkadii Ivanov in Programming Offtop
Зачем защита? Это же всё детали реализации компонента. Они все internal.
источник

AD

Aleksey D. in Programming Offtop
Денис
но нет никакой защиты от того чтоб подменить обработку мессаджа?
конечно, открываешь IDE и меняешь реализацию)
источник

Д

Денис in Programming Offtop
Arkadii Ivanov
Зачем защита? Это же всё детали реализации компонента. Они все internal.
если Msg компонента будет internal то как я буду мапить input->msg?
источник

AI

Arkadii Ivanov in Programming Offtop
Денис
если Msg компонента будет internal то как я буду мапить input->msg?
Функцией, которая тоже internal и лежит в модуле
источник

AI

Arkadii Ivanov in Programming Offtop
internal val inputToMsg: (Input) -> Msg = { when(input) ... }
источник

Д

Денис in Programming Offtop
Arkadii Ivanov
Функцией, которая тоже internal и лежит в модуле
смысл в том, что вызывать редусер компонента или какой то другой редусер остается на совести у разработчика?
источник

AI

Arkadii Ivanov in Programming Offtop
Денис
смысл в том, что вызывать редусер компонента или какой то другой редусер остается на совести у разработчика?
Конечно
источник

AD

Aleksey D. in Programming Offtop
Денис
смысл в том, что вызывать редусер компонента или какой то другой редусер остается на совести у разработчика?
нет!
источник

AD

Aleksey D. in Programming Offtop
на совести автора компонента
разработчик извне не может подсунуть свой редьюсер
источник

AI

Arkadii Ivanov in Programming Offtop
Ну и если добавить новый вариант Input то модуль не скомпилируется, если все when в мапперах exhaustive
источник