Pull to refresh

Comments 12

Надо было начать с Рюрика

Редукс существовал задолго до Рюрика, просто ещё не был открыт

Еще в Древнем Риме! И уже потом его не Тьюринг, а Чёрч перепридумал для лямбда-исчисления!

Месье Платонист? Жму руку

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

А бизнес-логику приложения перенести из каждого события в функцию переходов (она же редуктор). 

А можно не выдумывать сложности там где их нет, и не пытаться оправдать существование редакса, с его уродским синтаксисом, тем, что якобы мы, решая некую там задачу – к нему же и придем.

const handler = {
  currentState: undefined;
  
  handleEvent(event) {
    this.currentState = event.type;
    
    switch (event.type) {
      case "play":
          // ...
        break;
        
      case "pause":
        // ...
        break;
  
      case "ended":
        // ...
        break;
        
      case "timeupdate":
        // ...
        break;  
      case default;
        // ...
    }
  }
}


// audio = HTMLAudioElement

audio.addEventListener(handler);
// later
audio.removeEventListener(handler);

Какой практический смысл в том, что вы преобразовали play, pause, ended и timeupdate в PLAYING, STOPPED, PAUSED и ENDED?

  • Сделаем независимую от бизнес-логики библиотеку,

Что вам это дало?

  • чтобы и в реакте работало,

А если Vue? Angular? Solid?

  • чтобы и обновление частей состояния не вызывало перерисовки!!

Значит ли это, что при обновлении части состояния, например с PLAYING на PAUSED, пользователь это не увидет?

  • Чтобы были плагины в браузере для истории переходов!

Чтобы что? Для чего? Да, мы знаем, что редакс подает как мегафишку то, что вообще говоря почти никогда не требуется, а если требуется, то очень легко реализуется и без него?

Отличный вопрос!

А можно не выдумывать сложности там где их нет

100% можно. Это лишь пример, именно в нём конечно не нужен редакс. Но и ваш пример как раз про автоматное программирование - переход от событийной логики в конечному автомату.
Редакс это просто реализация такого подхода в реакте. Чтобы не всё приложение перерисовывалось и прочие плюшки.

Что вам это дало?

А если Vue? Angular? Solid?

Это пример будущих мыслей бизнеса и техлидов.

Значит ли это, что при обновлении части состояния, например с PLAYING на PAUSED, пользователь это не увидет?

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

* – redux + react-redux

Чтобы что? Для чего? Да, мы знаем, что редакс подает как мегафишку то, что вообще говоря почти никогда не требуется, а если требуется, то очень легко реализуется и без него?

Чисто для отладки. Чтобы не console.log писать (даже через debugger), а видеть как менялось состояние. А как без редакса смотреть и менять состояние вашего примера handleEvent?

Не знаю кто писал эту статью, но живые программисты не говорят "редуктор"

Статью явно писал сантехник

UFO landed and left these words here

Оказаться на проекте с редаксом - это боль
Выбрать редакс целеноправленно - это диагноз

"Редукторы" это вещь! ...от которых мы сейчас всеми силами избавляемся и переходим на ванильный TS, именно как написал @nihil-pro

Sign up to leave a comment.

Articles