[Zope3-dev] Zope 3 Source organization
Tres Seaver
tseaver@zope.com
14 Jul 2003 09:33:47 -0400
On Sun, 2003-07-13 at 18:35, Jim Fulton wrote:
>
> Hi,
>
> Last december, we made a concerted attempt to improve the organization
> of the source tree:
>
> - Made the tree somewhat shallower
>
> - Adopted the twisted module naming conventions
>
> - Separated presentation code into separate trees to make it
> easier for people working on presentation only. The idea was
> that presentation folks didn't want to scan through the regular
> sources to find presentation code.
I think this was a false goal: we were trying to satisfy an audience
who doesn't (yet, anyway) exist, penalizing the folks who actually work
in the Zope3 code every day.
>
> - Separated interface code into separate trees. This was driven
> by two things:
>
> o People working on presentation need to consult interfaces.
> There's no point separating the presentation code if people
> still have to search the regular code for interfaces.
>
> o Tres at one point lobbied for separating the interface code
> into a separate tree.
The only case I can see for separation is where true pluggability is a
high-priority goal: e.g., you have an important use case for supplying
alternate implementations of a component, and the real cost of
abstracting away the interface and the browser bits will pay *immediate*
returns.
Note that I will contend that pluggability is *not* a goal for
straightforward content objects!
In cases where the abstraction is worthwhile, the browser bits will
presumably depend solely on the interfaces; we should therefore locate
the browser bits *with* the interfaces on which they depend. Such
interfaces and dependent browser bits then form the framework into which
concrete implementations plug themselves.
Tres.
--
===============================================================
Tres Seaver tseaver@zope.com
Zope Corporation "Zope Dealers" http://www.zope.com