Через некоторое время я понял суть: во-первых, мой вопрос возник из событий, управляемых C ++ / Java / C # (Redux имеет реализацию не только для JS).
Так что мне интересно, что плохого в старыхpattern fashion Событийная среда вроде Winform и все как?Все они работают с DataTable или коллекцией простых классов (Structures).Визуальный компонент содержит состояние редактирования или другое состояние виджета, но не логику вообще.(Я не говорю здесь о таких громких словах, как MVC или MVVW или любых других лозунгах. Но все убеждают одну и ту же правду: мы должны каким-то образом отделить представление от логики ).
См. Evaldas Buinauskas ответ, есть 4 принципа.Позвольте мне объяснить, почему эти принципы не являются основными:
1> По какой причине я нуждаюсь в неизменности?(Автоматическое изменение осведомленности может быть сделано с помощью аспектно-ориентированного программирования. Или даже не так уж плохо вызывать повторную визуализацию вручную после каждого действия)действие без удаления предыдущего. Для большинства приложений не является необходимым или невозможным из-за озера оперативной памяти).
3> Все, что я знал, реализует его.
4> Некоторые из вышеперечисленных,Неизменность не требуется, и новое состояние в результате действия хорошо реализуется со всеми известными шаблонами драйвера событий.
Итак, я думаю, что основной ответ Evaldas Buinauskas с моей точки зрения таков:
Redux в значительной степени вдохновлен архитектурой Elm и поддерживает принципы функционального программирования,одна из них - чистые функции (они не вызывают побочных эффектов (например, http-вызовы, чтение с диска) и их вывод всегда одинаков для одного и того же ввода).
С чистой функцией, которая ничего не меняет снаружииз магазина, мы получаем более понятный и тестируемый код (я думаю, что это означает слова "предикаты").