Size: a a a

2016 December 17

NG

Nikita Glazov in JSNN 🤔 (GSNN)
Igor
Ну там вроде свитч по типам
Тип экшена записывается строкой, а строка выносится во внешнюю константу.
источник

NG

Nikita Glazov in JSNN 🤔 (GSNN)
Короче могут быть внешние константы, которые не меняются в процессе выполнения. На то она и константа
источник

💭П

💭 Руслан Прохоров in JSNN 🤔 (GSNN)
Nick Kugaevsky
Норм пицца
Во ты специально гинес заплатил? Да?
источник

NK

Nick Kugaevsky in JSNN 🤔 (GSNN)
💭 Руслан Прохоров
Во ты специально гинес заплатил? Да?
Ты знал
источник

RB

Ruslan Boyarsky in JSNN 🤔 (GSNN)
Thanks at all!!!
источник
2016 December 18

NP

Nick Plekhanov in JSNN 🤔 (GSNN)
Там сверху люди спрашивали об организации файлов. Вкратце это сводится к следующему:

Есть такая примерная структура компонента https://gyazo.com/8e442909e708c8b2981024fb8d214018

FeatureNameView связан с Redux и содержит все вызовы экшенкриейторов. Вложенные компоненты получают нужные обработчики через props и ничего не знают о существовании Редакс. Весь лэйаут страницы идёт в FeatureNameLayout компонент.

tl;dr FeatureNameView.js - это рутовый файл фичи (может и не понадобится). Внутри себя он уже вызывает FeatureNameLayout, как то так

render() {
   const { isFetching } = this.props;
   return (
     <div>
       {isFetching ? (
         <span>Loading...</span>
       ) : (
         <FeatureNameLayout
           {...this.props}
           onSomethingCool={what => this.handleSomethingCool(what)}
         />
       )}
     </div>
источник

NP

Nick Plekhanov in JSNN 🤔 (GSNN)
Ну и конечно возможны разные отступления и модификации данной структуры
источник

NK

Nick Kugaevsky in JSNN 🤔 (GSNN)
Afterafterafterparty
источник

NK

Nick Kugaevsky in JSNN 🤔 (GSNN)
источник

AK

Aleksey Kutepov in JSNN 🤔 (GSNN)
источник

AZ

Andrey Zaytsev in JSNN 🤔 (GSNN)
Nikita Glazov
У меня вопрос: можно ли в чистой функции использовать внешние константы?
Наврал я вчера. От чистой функции требуется отсутствие побочных эффектов, а не отсутствие внешних зависимостей. Т.е. она не должна влиять на внешнее окружение (изменение глобальных переменных, внешний вывод и т.п.) и не должна изменять значения входящих аргументов.
источник

AZ

Andrey Zaytsev in JSNN 🤔 (GSNN)
источник

AZ

Andrey Zaytsev in JSNN 🤔 (GSNN)
А отсутствие внешних зависимостей влияет на тестируемость функции. Но в случае с константами в редьюсерах - это скорее помогает, чем мешает.
источник

MG

Max Golon in JSNN 🤔 (GSNN)
Ну если следовать определению из статьи, то внешние константы это таки нарушение чистоты функции. Потому что могут (теоретически) меняться между запусками.
источник

MG

Max Golon in JSNN 🤔 (GSNN)
И в случае редьюсера, значения этих констант влияет на результат
источник

AZ

Andrey Zaytsev in JSNN 🤔 (GSNN)
но в пределах одного запуска функция будет детерминирована.
источник

MG

Max Golon in JSNN 🤔 (GSNN)
that may change while program execution proceeds or between different executions of the program
источник

MG

Max Golon in JSNN 🤔 (GSNN)
В пределах одного запуска таки недостаточно
источник

MG

Max Golon in JSNN 🤔 (GSNN)
Но как уже говорилось, определение дано для идеального мира, а мы принимаем некоторые допущения
источник

AZ

Andrey Zaytsev in JSNN 🤔 (GSNN)
between different executions of the program
Это справедливо только для констант, завязанных на окружение. Если в рамках одного окружения запуски дают одинаковый результат, то функцию можно считать чистой (ИМХО)
источник