durusmail: quixote-users: Re: Quixote namespaces/callables in practice...
Quixote namespaces/callables in practice...
Re: Quixote namespaces/callables in practice...
2003-12-11
2003-12-11
2003-12-11
Re: Quixote namespaces/callables in practice...
Jim Dukarm
2003-12-11
----------- Graham Fawcett: ---------------------
> I think there should be a rough correspondence between the breadth/depth
> of your data structure and the breadth/depth of your URL space. If your
> database is very hierarchical, then you'll probably end up with a deep
> nesting. No matter the shape of your data, a good correspondence here
> will make your app more understandable (to yourself, your users and
> future maintainers of your code).

Deep hierarchical nesting can make an application very difficult and
unpleasant to use. Extensive use of traversible classes allows you to
flatten out a deep hierarchical URL space.

For example, in my application, I have a large relational database of
equipment, each equipment item having a history of oil tests, each
test having various sorts of analysis results, each of which can be
reported in various ways.  Because of the way the classes work, the
path:

/app/locations/24/equipment/137/oiltests/1823/particles/pdf

is equivalent to:

/app/oiltests/1823/particles/pdf

(This works because 1823 is a unique identifier for that particular
data record in its table).

In fact, as you "tunnel down" through the hierarchy, the links
provided for the next level of detail often point to a shortened path.
For example, if while viewing the list of equipment at location #24
(/app/locations/24/equipment/) you select unit #137 for viewing, that
link points to the path /app/equipment/137/ instead of to the longer
/app/locations/24/equipment/137/. The longer paths still work as
expected, too.

Jim Dukarm
DELTA-X RESEARCH
Victoria BC Canada



reply