That's a fair point--I suppose it's only a smell because I know that I
could probably do the same thing using Om components.

But it is important to note that Om/React does make these kinds of
things possible with, all thing considered, relatively little pain.

(2014/03/31 1:14), David Nolen wrote:
> I think integrating non-React components is always going to be a bit of
> a hack and there's not really much we can do about it: mutable component
> -> immutable component is going to have mixed results. At least it can
> be done and I would not consider the difficulties a smell but rather a
> fundamental impedance mismatch.
> 
> On Sunday, March 30, 2014, Dave Della Costa <[email protected]
> <mailto:[email protected]>> wrote:
> 
>     David, I would love to read this.  I've spent a lot of time working
>     through Om architectural patterns and I think I have a sense of what
>     works and what doesn't, but getting a more comprehensive higher-level
>     take from you would be great.
> 
>     I also want to thank Sean Grove for putting Omchaya out there and
>     helping to get these conversations going.  Along those lines, Sean, I'd
>     love to hear more about what you've learned recently as well, as you
>     mentioned in another email in this thread.
> 
>     I would like to put a blog post out there as well once I've had more
>     time to think things through and there has been more discussion of what
>     good patterns are on the list.  But I will give a quick very high-level
>     overview of our front-end app structure:
> 
>     We have an Om app that uses a server-push mechanism resulting in global
>     app state changing "from the top."  Any requests to update state from
>     the client app go directly to the server asynchronously.  This is very
>     clean and works quite well for us, but I understand this may not reflect
>     a common architecture--it certainly obviates the need for something like
>     om-sync, and it means we don't have a lot of calls to transact!/update!
>     in our app--we let the server worry about how updates to app data should
>     be managed (generally speaking).
> 
>     We also rely on a page/routing protocol mechanism for communication of
>     global state changes between disparate components--"page partials" which
>     may have a lifespan across page changes vs. "page components." Otherwise
>     components within a page really only have local state changes to worry
>     about, and we use the mechanism (which seems to have been somewhat
>     codified) wherein state and a channel gets passed to a child component
>     which then can transmit updates to state back up the hierarchy via the
>     channel.  This is very simple to use and also quite clean.
> 
>     There are a few places where we leverage Google UI widgets and while we
>     saved some energy porting some older code over, it's definitely obvious
>     that there is an impedance mismatch there--there are a ton of channels
>     managing state changes, and I had to be very careful to play nicely with
>     the React update cycle.  Not to harsh on Omchaya--it's the only example
>     that anyone has been courageous enough to put out there to bash on!--but
>     some of its more channel-heavy code really reminded me of this.  I'm
>     starting to think it's a bit of a smell when building Om apps.
> 
>     Anyways--I have to get going but I'm really interested to hear from and
>     discuss more about this with everybody.
> 
>     DD
> 
>     (2014/03/30 1:23), David Nolen wrote:
>     > This is getting closer but I think will write up my own
>     > thoughts/opinions on Om application architecture soon. While the
>     > existing tutorials are nice for understanding how Om works, I think a
>     > rough guide to architecting Om applications would be useful to all
>     - not
>     > the least because it will likely need many refinements as we put the
>     > ideas into practice.
>     >
>     > David
>     >
>     >
>     > On Sat, Mar 29, 2014 at 5:22 AM, Daniel Bell
>     <[email protected] <javascript:;>
>     > <mailto:[email protected] <javascript:;>>> wrote:
>     >
>     >     So, I figured it out, and wrote a blog post on why this is a
>     >     terrible idea:
>     >
>     >    
>     http://roninhacker.wordpress.com/2014/03/29/how-to-build-stuff-with-om/
>     >
>     >     --
>     >     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]
>     <javascript:;>
>     >     <mailto:clojurescript%[email protected]
>     <javascript:;>>.
>     >     To post to this group, send email to
>     [email protected] <javascript:;>
>     >     <mailto:[email protected] <javascript:;>>.
>     >     Visit this group at http://groups.google.com/group/clojurescript.
>     >
>     >
>     > --
>     > 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] <javascript:;>
>     > <mailto:[email protected] <javascript:;>>.
>     > To post to this group, send email to
>     [email protected] <javascript:;>
>     > <mailto:[email protected] <javascript:;>>.
>     > Visit this group at http://groups.google.com/group/clojurescript.
> 
>     --
>     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]
>     <javascript:;>.
>     To post to this group, send email to [email protected]
>     <javascript:;>.
>     Visit this group at http://groups.google.com/group/clojurescript.
> 
> -- 
> 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]
> <mailto:[email protected]>.
> To post to this group, send email to [email protected]
> <mailto:[email protected]>.
> Visit this group at http://groups.google.com/group/clojurescript.

-- 
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