[Zope3-dev] Re: Zope 3 Source organization
Philipp von Weitershausen
philipp@weitershausen.de
Mon, 14 Jul 2003 21:21:40 -0500
Stephan Richter wrote:
> So, going back (for example) to
>
> zope.app.workflow
> zope.app.workflow.browser
> zope.app.workflow.interfaces
>
> would be much nicer than
>
> zope.app.workflow
> zope.app.browser.workflow
> zope.app.interfaces.workflow
Well, yes and no. I can see where all of you who +1'd this are coming
from, but what would you do if you want to re-implement the workflow
package? On what interfaces would you rely on? I guess you could copy
all interfaces modules/packages verbatim into your own implementation,
but a) there's no guarantee that you actually do that and b) what
happens if the original interfaces are evolving?
Plus, a component might try to get an adapter based on a certain
interfaces. In order to support that we can have different
implementation based on the same interfaces, the interfaces really have
to be the exact same object, not just a copy...
Consider another, real-world example:
I've written interfaces in zopeproducts.xml.interfaces.dom according to
the W3C DOM specs. zopeproducts.xml.dom implements these interfaces, for
example. Furthermore, any other DOM implementation that someone might
want to write in the future can implement these interfaces. Now, any XML
component that needs a DOM implementation will get an adapter according
to these centrally defined interfaces and it will get the currently
configured DOM implementation. Wasn't that the whole idea of the CA?
As much of a pain it is right now, I'd like to keep the current
convention. Interfaces need to be separated from implementation, unless
we invent something like global identifiers like Shane suggested
(http://mail.zope.org/pipermail/zope3-dev/2003-July/007522.html). I've
been wanting to write a proposal on this (was on vacation till today).
Regards,
Philipp