Browse files

Clarify design goals

  • Loading branch information...
gaearon committed Jun 16, 2015
1 parent 2067d5c commit 07cf1424cb5e7bb7284acb282c996690cfc6d8c5
Showing with 18 additions and 10 deletions.
  1. +18 −10
@@ -4,23 +4,31 @@ redux
[![build status](](
[![npm version](](
An experiment in fully hot-reloadable Flux.
Atomic Flux with hot reloading.
**The API might change any day.**
_**Don't use in production just yet.**_
**The API is likely to change a few times before we reach 1.0.**
**Its [surface area]( is minimal so you can try it in production and report any issues.**
## Why another Flux framework?
Read **[The Evolution of Flux Frameworks](** for some context.
### Design Goals
* Hot reloading of everything.
* A hook for the future devtools to "commit" a state, and replay actions on top of it during hot reload.
### Philosophy & Design Goals
* You shouldn't need a book on functional programming to use Redux.
* Everything (Stores, Action Creators, configuration) is hot reloadable.
* Preserves the benefits of Flux, but adds other nice properties thanks to its functional nature.
* Prevents some of the anti-patterns common in Flux code.
* Works great in isomoprhic apps because it doesn't use singletons and the data can be rehydrated.
* Doesn't care how you store your data: you may use JS objects, arrays, ImmutableJS, etc.
* Under the hood, it keeps all yout data in a tree, but you don't need to think about it.
* Lets you efficiently subscribe to finer-grained updates than individual Stores.
* Provides hooks for powerful devtools (e.g. time travel, record/replay) to be implementable without user buy-in.
* Provides extension points so it's easy to [support promises]( or [generate constants]( outside the core.
* No wrapper calls in your stores and actions. Your stuff is your stuff.
* Super easy to test things in isolation without mocks.
* I don't mind action constants. Seriously.
* Keep Flux lingo. No cursors or observables in core.
* It's super easy to test things in isolation without mocks.
* You can use “flat” Stores, or [compose and reuse Stores]( just like you compose Components.
* The API surface area is minimal.
* Have I mentioned hot reloading yet?
## Demo

0 comments on commit 07cf142

Please sign in to comment.