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.
