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.
