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