Brent Simmons asks what others are doing in terms of web app architecture at the moment. I'm really enjoying working with my own CMS, which currently runs this site and a growing number of others.
In terms of architecture, everything is it's own module, from content to account settings to customised modules performing specific tasks. The framework that glues the modules together is mainly there for page layout and some communication. The framework provides one endpoint for API access, but immediately passes control to the requested module via a callback.
I'm finding this way of working pretty flexible, as each module has full autonomy. This starts with the database tables it installs, it provides paths to client side javascript to include, it specifies the public functions it expose to other modules, and can even control the style at a module level with it's own CSS. I've tried to avoid code re-use by having modules inherit from a base class that also provides a minimal interface that must be implemented.
My apps using this framework tend to be quite javascript intensive, so there's an automatic build system to concatenate minified javascript files for each module. At the same time it's also pretty low-tech, the main dependencies being jquery and jquery-UI and not much else.
The code is called dobrado and is released under a Free Software license. Feedback is always welcome :-)
My Web App Architecture
In terms of architecture, everything is it's own module, from content to account settings to customised modules performing specific tasks. The framework that glues the modules together is mainly there for page layout and some communication. The framework provides one endpoint for API access, but immediately passes control to the requested module via a callback.
I'm finding this way of working pretty flexible, as each module has full autonomy. This starts with the database tables it installs, it provides paths to client side javascript to include, it specifies the public functions it expose to other modules, and can even control the style at a module level with it's own CSS. I've tried to avoid code re-use by having modules inherit from a base class that also provides a minimal interface that must be implemented.
My apps using this framework tend to be quite javascript intensive, so there's an automatic build system to concatenate minified javascript files for each module. At the same time it's also pretty low-tech, the main dependencies being jquery and jquery-UI and not much else.
The code is called dobrado and is released under a Free Software license. Feedback is always welcome :-)