[Zope-PTK] PTK work areas

Phillip J. Eby pje@telecommunity.com
Mon, 01 May 2000 17:04:45 -0500


At 03:02 PM 5/1/00 -0400, Dan L. Pierson wrote:
>
>** RIPP redesign?
>
>The all in one bag nature of the ZODB sometimes bothers me.  It might
>be nice to have an option to store discussion contents elsewhere (see
>http://www.zope.org/Members/kedai/ZTD).  If discussion threads were
>Racks, this would fall out naturally.

Actually, this isn't quite what I'd suggest, as a needless proliferation of
Racks would result.  The approach recommended by the RIPP model would be to
have Discussables delegate storage of their responses to a shared
Specialist object (formerly known as an Implementor) which would then have
a Rack where the responses were stored.  The Discussable would have some
kind of thread key it used to identify itself to the Specialist, which
would then retrieve posts that were relevant to it.  This makes
Discussables entirely independent of the implementation of the discussion
objects themselves, as long as they have some way to store the thread key
assigned by the Specialist.  The specialist is found by acquisition via a
standard name much the way one finds a "Catalog" object.  In this case, the
specialist might be called "DiscussionThreads", and a Discussable would
then perform operations such as:

self.DiscussionThreads.getPostsFor(self.threadKey)

Of course, this also provides the portal developer with the opportunity to
create different specialists on a folder-by-folder or section-by-section
basis.  Putting different DiscussionThreads specialists in the /Members and
other areas would make it easy to have different storage media as well as
policies for operation.  But the Discussable base class itself wouldn't
know or care which was being used or how its discussion was actually being
stored.