For all the web designers out there in the TOPPosphere…
From a designer’s POV, the most important files are templates, CSS, and javascript. They are the three pillars of web design. The sun rises and sets with them. They are best friends. So, ideally, they should be as close together as possible.
For example: here’s how files are laid out in a typical Pylons application:
/path/to/application/:
public/
images/
javascripts/
stylesheets/
templates/
index.mako
specific-group-of-templates/
etc.
This is a really nice layout — the files are close together, and there’s never any question where something is or where it should go. New images go in public/images, new javscript goes in public/javascripts, etc. This is the same from one application to another. Ruby on Rails follows a similar pattern.
By contrast, here’s the file layout in the Almanac project:
/path/to/application/:
parts/
client/
resource/
lib/
Almanac.js
theme/
almanac.css
img/
src/
CommunityAlmanac/
opengeo/
almanac/
templates/
mytemplate.pt
When I first saw this I was like AAAAH! Not to pick on the Almanac, though; I love the Almanac. Really, I do. But, it can be frustrating to work with. Not only are the files in far flung branches of the filesystem, but they’re in separate checkouts. This means lots of time spent switching back and forth between areas of the site (I ended up using two separate Coda profiles to work on these files), and two commits for nearly every change.
Could this have been avoided? I’m not sure. If we keep laying out apps this way, will the sky fall? Probably not. But if it’s possible, we should could consider the plight of the poor, defenseless designer when laying out our apps in the future.