On Monday, March 16, 2015 at 8:53:59 PM UTC+1, Michael Campagnaro wrote:
> First off, re-frame looks really great, Mike. Thanks for writing it.
> 
> My team has been working on a Reagent SPA for half a year and it's our first 
> CLJS project so we are feeling some pain due to design choices that were not 
> the best. We really like the re-frame pattern and want to transition over to 
> it. I'm attempting to work out a plan for this. Either creating a new app on 
> the side and porting code over to use re-frame or gutting the current app in 
> place. 
> 
> Since re-frame is so new it's hard to tell what the limitations are. On one 
> hand the codebase is small, simple and nothing stands out as being a 
> potential problem in a large app. On the other hand I can't help but be 
> skeptical and curious :) 
> 
> So I'd love to hear about anyone's experience using re-frame to power a 
> non-trivial app, preferably in production. Are there things that I should be 
> mindful of when scaling the re-frame pattern?

We've been using a very similar approach to re-frame in production for almost a 
year now (with Om instead of Reagent). The app isn't huge, but it's a couple 
thousand lines of cljs. The main difference with re-frame is that we allow 
components to subscribe to events in order to manage their local state as we 
don't keep everything in the app state.

The app is split into a namespace group for each module of functionality, with 
each group having its own handlers for application events, remote endpoints and 
components.

There is one state atom for the whole application, although every module gets 
it's own state under a separate key in the state map. There is some reference 
data common to every module which is the only part accessed by everyone (using 
the Om ref-cursors).

I feel that the re-frame architecture scales very well if you are consistent in 
naming and separating the responsibilities.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/clojurescript.

Reply via email to