Информация об изменениях

Сообщение Re[2]: Как в C++ получить Redux и Redux Dev Tools от 31.12.2020 0:22

Изменено 31.12.2020 0:23 vsb

Re[2]: Как в C++ получить Redux и Redux Dev Tools
Redux это не совсем автомат (ну точней всё в мире конечный автомат, если быть педантичным, но Redux не про это). Redux это по сути паттерн и крохотная библиотека, помогающая его реализовать.

1. Всё мутабельное состояние приложения хранится в едином объекте (state). Этот объект представляет собой иммутабельную структуру.

3. Весь код, меняющий это состояние, хранится в одном месте (reducer).

4. Любое изменение состояния описывается неким объектом (action).

Что это позволяет:

1. Можно делать этот самый Time Travel. Т.к. у нас состояние приложения иммутабельное, то каждый шаг легко можно сохранять отдельно. Также сохраняется объект action. Таким образом можно относительно легко логику изменения состояния приложения.

2. Можно делать hot reload. Что это значит. Мы запустили приложение, что-то натыкали и находимся в определённом месте. Например открыли окно настроек, залезли там куда-то и тд. И теперь поняли, что надо поменять что-то в коде. Мы меняем код, перезапускаем приложение и проигрываем все action-ы, которые были сделаны в прошлый раз. В итоге после перезапуска приложение находится в том же месте и в том же состоянии. Если делать это достаточно быстро, получается эдакая магия. Ну и это очень помогает сократить время разработки GUI-приложений. Причём от рантайма вообще никакой магии не требуется.

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

4. Эта штука хорошо сочетается с парадигмой React.
Re[2]: Как в C++ получить Redux и Redux Dev Tools
Redux это не совсем автомат (ну точней всё в мире конечный автомат, если быть педантичным, но Redux не про это). Redux это по сути паттерн и крохотная библиотека, помогающая его реализовать.

1. Всё мутабельное состояние приложения хранится в едином объекте (state). Этот объект представляет собой иммутабельную структуру.

2. Любое изменение состояния описывается неким объектом (action).

3. Весь код, меняющий это состояние, хранится в одном месте (reducer: (old_state, action) -> new_state ).


Что это позволяет:

1. Можно делать этот самый Time Travel. Т.к. у нас состояние приложения иммутабельное, то каждый шаг легко можно сохранять отдельно. Также сохраняется объект action. Таким образом можно относительно легко логику изменения состояния приложения.

2. Можно делать hot reload. Что это значит. Мы запустили приложение, что-то натыкали и находимся в определённом месте. Например открыли окно настроек, залезли там куда-то и тд. И теперь поняли, что надо поменять что-то в коде. Мы меняем код, перезапускаем приложение и проигрываем все action-ы, которые были сделаны в прошлый раз. В итоге после перезапуска приложение находится в том же месте и в том же состоянии. Если делать это достаточно быстро, получается эдакая магия. Ну и это очень помогает сократить время разработки GUI-приложений. Причём от рантайма вообще никакой магии не требуется.

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

4. Эта штука хорошо сочетается с парадигмой React.