[Zope] Developing products in anticipation of Zope 3

Casey Duncan casey@zope.com
Fri, 4 Oct 2002 00:27:44 -0400


Here's what I would do:

Write as much of the code as possible such that it is not dependant on Zo=
pe.=20
Use unit-testing and Interfaces for everything. Factor things into relati=
vely=20
simple modules that layer on top of one another.=20

Then write a top layer (hopefully a thin one) to integrate it all with Zo=
pe.=20
Version 2.x assuming the first part doesn't take years ;^). Assume that t=
his=20
part will be largely thrown away when Zope 3 rolls out.

If you have reasonably factored the non-zope code, and used Interfaces th=
en I=20
think you will find that creating a new top layer for Zope 3 to be *much*=
=20
easier. Things like templates may be reusable with some modification, but=
=20
likely by the time you do this, you will undoubtly want to refactor thing=
s.

Last, don't be afraid to throw away all the implementation code eventuall=
y (or=20
even early and often ;^). Try to get the general architecture right (and=20
declare it with the interfaces and other docs). Given a working specifica=
tion=20
and a well thought out and tested architecture, rewriting the code will b=
e=20
the easy part.

hth,

Casey

On Thursday 03 October 2002 02:50 am, Wankyu Choi wrote:
> Hi All,
>=20
>=20
>=20
> I have a rather big and complex portal project that'll take at least ha=
lf a=20
year to complete (plus, I need to pack in e-commerce and club features to=
=20
accomodate the existing user base, a huge one). Taking CMF and/or Plone a=
s it=20
is would need too much customization. Still, basing my project on CMF is =
an=20
option I'm considering. Until now, I've been coding this portal from scra=
tch=20
with no dependency on any other product and it's usable with 1.0b tag. (I=
t's=20
in no way complete and not public yet, but if you want to see it in actio=
n=20
visit http://www.neoboard.net. Only a minimum set of features - navigatio=
n,=20
article system, etc - are visible since my other open source project=20
"NeoBoard" doesn't require Membership and stuff.).=20
>=20
>=20
>=20
> What holds me back from going ahead with my plan is... Zope 3. I read a=
n=20
interview article where Jim Fulton **hoped** Zope 3 would be available in=
=20
**a** usable form in July or early this fall.=20
>=20
>=20
>=20
> Against this backdrop, what would you do if you were in my shoes?
>=20
>=20
>=20
> 1. Go ahead with the no-dependency plan with all modules having distinc=
t=20
connecting points with Zope so that I could plug them into Zope 3 some da=
y.=20
(Is it even possible? Not sure if Zope2 products would seemlessly integra=
te=20
into Zope3. Jim's interview suggested Zope3 would offer backward=20
compatibility but also suggested that Zope2 products would have to get=20
upgraded to Zope3 architecture anyway.)
>=20
>=20
>=20
> 2. Base my project on CMF since CMF will be integrated into Zope 3 Core=
=2E I'm=20
a bit reluctant to taking this option since, again, too much customizatio=
n is=20
called for. I'd have to override almost all tools/types plus authenticati=
on=20
scheme in order to accomodate the existing user base. (Guess it'll take a=
 lot=20
of re-coding anyhow with Zope 3 even if I push ahead with this plan.)
>=20
>=20
>=20
> 3. Create a Zope 3 sandbox. Experiment with it and get on with the proj=
ect=20
inching along with Zope3 development. Learn-and-develop-as-I-go approach,=
=20
sort of.=20
>=20
>=20
>=20
> I'm pretty much inclined to option number 3. I don't want my project to=
=20
become a dinasaur when Zope 3 surfaces. (Wouldn't I see myself having to=20
upgrade my product the moment Zope 3 gets here in full swing just when I=20
thought the project was over?)
>=20
>=20
>=20
> Any thoughts/help will be appreciated.
>=20
>=20
>=20
> Regards,
>=20
> Wankyu Choi
>=20
> _______________________________________________
> Zope maillist  -  Zope@zope.org
> http://lists.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists -=20
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope-dev )
>=20