Ken,

I recommend going through the Getting Started exercises for
JavaScriptMVC (JMVC) which attempts to solve most of the problems that
you've outlined here. At this year's Java Posse Roundup I led a group
of about 10 people through those exercises so we could figure out
JMVC. It was very enlightening, and doing it in a group really helped.
If you can partner with someone to get through the tutorials it will
be easier. JMVC's documentation is not perfect, and there are a lot of
features to get through because the framework is trying to solve a lot
of common problems with large JavaScript projects. However, I think
it's a very rational approach when your project gets large.

JMVC combines jQuery with Model-View-Controller extensions, templating
for HTML generation, StealJS for dependency management, FuncUnit and
Selenium for unit and integration testing, documentjs for generating
documentation a la JavaDoc, a build system written in JavaScript and
running on Rhino from the command line or ant targets. There are other
goodies in there too if you're interested in reading about JMVC.

Another framework worth a look is SproutCore, which is also supposed
to provide a solid framework for architecting large JS apps with good
software architecture. I haven't tried it but I saw a presentation by
Yehuda Katz that convinced me SproutCore had good ideas to offer for
managing complexity in large JS apps.

Without strong architecture the natural tendency when writing HTML,
JavaScript, and CSS is to leak abstractions all over the place without
even thinking about it. This makes things impossible to edit later
without breaking other things accidentally. It's simply not possible
to continue to "wing it" when your JS app gets too big.

-Joe Sondow
http://www.sondow.com

-- 
You received this message because you are subscribed to the Google Groups "The 
Java Posse" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.

Reply via email to