Size: a a a

Programming Offtop

2020 August 15

Д

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

Д

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

AD

Aleksey D. in Programming Offtop
public sealed class Input
public sealed class Output
internal sealed class Message
internal sealed class Command
источник

Д

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

AD

Aleksey D. in Programming Offtop
Денис
ну мы имеем полную власть на редусером так что это вполне возможно вроде как
откуда?
источник

AI

Arkadii Ivanov in Programming Offtop
Aleksey D.
public sealed class Input
public sealed class Output
internal sealed class Message
internal sealed class Command
+ это все в модуле компонента лежит
источник

Д

Денис in Programming Offtop
Aleksey D.
откуда?
в основной редусер придет мессадж Output(или Input, я тут не понял что в что мапится), ну и мы дальше можем игнорируя все вернуть какой угодно стейт
источник

AD

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

Д

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

Д

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

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

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

хотя наверное это все таки маловероятные сценарии и я зря по этому поводу парюсь
источник

AD

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

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

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

хотя наверное это все таки маловероятные сценарии и я зря по этому поводу парюсь
чет какая-то путаница, к редьюсеру нет доступа извне
источник

AD

Aleksey D. in Programming Offtop
и ошибки уровня «а что если я в функции суммирования буду вычитать»
источник

Д

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

AD

Aleksey D. in Programming Offtop
так же как и вычитание в функции складывания, не?
если заведомо делать что-то не то, то оно и будет работать как-то не так
источник

Д

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

AD

Aleksey D. in Programming Offtop
такой возможности нет
источник

Д

Денис in Programming Offtop
Aleksey D.
такой возможности нет
ну в смысле нет?

fun mainReducer(currentState: MainState, msg: Msg): State {
   return when (msg) {
       is ComponentMessage -> {
           currentState.copy(
               componentState = ComponentState(
                   field = "not corrent value"
               )
           )
       }
       else -> currentState
   }
}

вот я вернул состояние которое сам сделал а не то что редусер компонента должен был вернуть
источник

AD

Aleksey D. in Programming Offtop
Денис
ну в смысле нет?

fun mainReducer(currentState: MainState, msg: Msg): State {
   return when (msg) {
       is ComponentMessage -> {
           currentState.copy(
               componentState = ComponentState(
                   field = "not corrent value"
               )
           )
       }
       else -> currentState
   }
}

вот я вернул состояние которое сам сделал а не то что редусер компонента должен был вернуть
ну у тебя есть, в «правильно» имплементации такой возможности нет
источник

Д

Денис in Programming Offtop
как сделать правильную имплементацию тогда?
источник

AD

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