Separation of Concerns - Page 2
August 20, 2001
Probably the single most important and useful quality for Web
site design is flexibility. Most of us are pathologically
incapable of getting anything right the first time, and while
we're trying to do that, the universe changes, invalidating our
Perfect Design.
Programmers well know that the key to flexibility is
separation of concerns, typically implemented using
"indirection". For example, Web design should separate content
and style, then link one to the other.
However, this separation is a Good Thing only up to a point.
First, it adds another thing to be managed. Second, it often adds
another dimension to get confused in. Style sheets may be buggy,
and browser support is still inadequate. Above a certain
threshold of complexity, changes you make in the style sheet may
have unexpected consequences — rather like software
programs where you change one line and later discover it caused a
bug. The best you can do is to try to keep it well-organised, and
as simple as possible (but no simpler).
Still, EncycloZine
uses style sheets to enhance flexibility, as well as
an xHTML prepreocessor
(xh) and server-side includes (SSI). For almost all pages (except
the home page) I've used server-side includes (SSI) to make it
easy to change boilerplate items such as the navigation menu.
This has been extremely useful, as it saves having to regenerate
all pages just to accomodate small site-wide changes such as
changes to the menu. SSI enhances flexibility, as do
style sheets, and our
macro processor xh.
The decision to use
xHTML was motivated by the desire to gain experience and a
foothold in the then forthcoming "next generation HTML, in
XML".
My researches and experiments suggested there would be little (if
any) browser compatibility problems (even if the browsers didn't
explicitly support XHTML, they ignored the minor differences with
classic HTML).
There were a few minor issues with search engines processing a
couple of tags incorrectly, e.g. <?xml version="1.0"
encoding="UTF-8"?> showed up in some search engine
results, and a few minor search engine spiders reported that my
<meta> tags were incorrect. But these issues
didn't seem to have a significant impact.
Information Architecture
"Whenever we develop a new skill or extend an old
one, we have to emphasize the relative importance of some aspects
and features over others. We can then place these into neat
levels only when we discover systematic ways to do so. Then our
classifications can resemble level-schemes and hierarchies. But
the hierarchies always end up getting tangled and disorderly
because there are also exceptions and interactions to each
classification scheme." — Marvin Minsky, The Society of
Mind
Information architecture is the process of organizing,
labeling, designing navigation and searching systems that helps
people find and manage information more successfully. Good
information architecture makes a Web site easy to use.
For a site with a substantial amount of content, an important
question to answer is How shall we classify and organise our
content? Classification is needed to provide context for
navigation in any knowledge medium, e.g. the
World
Wide Web. We want to know where we are, and how to go
elsewhere. Maps, coordinates, signposts, landmarks, etc. are what
we use in the physical world, and equivalents are needed in
cyberspace. But present methods are cumbersome — you guess
at keywords, or click on the most promising link; wait for the
results, and click some more, wait some more — searching
for specific information can get really frustrating.
The main question was whether to adopt a formal 'library' type of
classification, or whether to create one. We investigated several
schemes, including library classification, e.g.
Dewey Decimal Classification (DDC),
Library of Congress
(LoC), and other hierarchical schemes, such as
Yahoo!'s.
We started out using Dewey, but quickly realised that such a
scheme was too inflexible, and reflects cultural heritage rather
than the demands of an Internet audience. We also tried an
encyclopedia
scheme, i.e. almost no hierarchy, letting most subjects have a
top-level folder in the filing system. This almost worked, but
offered no structure. Eventually we compromised on a hybrid,
selecting several broad subject areas that were popular with our
audience, and then placing sub-topics under them.
Design and Architecture of a Content-Rich Web Site
Hierarchy and the Filing System - Page 3
|