[Zope-PTK] Getting it all to work ;-)

Jimmie Houchin jhouchin@texoma.net
Sat, 01 Jul 2000 07:19:51 -0500

You remember well. I won't disagree with what you have said. I haven't
read his articles in total yet. But like a lot of things there is good
and bad. You take what sounds right and build your own philosophy and
methodology and consequent experience will either confirm it or deny it.

He does advocate tightly coupled presentation to business logic.
According to article #2, it is not a problem because a business object
is not usable outside of it's specific domain, and within that domain
the UI is well known.

I don't necessarily agree with putting presentation in with business
logic either. It feels strange. However, in my spare time I'll continue
reading with an open mind. Whatever I can glean that rings true I'll
learn. The rest can be chaff.

I like the fact that he tries to get his reader away from thinking about
classes to thinking about objects. "We're doing object-oriented design,
not class-based design."

That is true and it seems we see class-based designed often being used
as OOD.

One problem I see with some of his philosophy in the Python world is
that he comes from a C++ and Java world. He believes 'All data is
private.'. Because of his language choice he uses and is dependent on
the languages ability to enforce such. Python on the other hand expects
responsible programming by responsible programmers and relies on
conventions and respecting of those conventions. In Python, if you do
something stupid and it bites you, you learn. :)

Back on topic.

I do think that it is good to think through the properties/attributes of
the object. Are preferences a property or attribute of the user or the
user's folder? Are properties as an individual item an attribute of the
user or should there be a Preference object? ie: Do we want each
individual preference an attribute of the user or would we rather have a
Preference object which contains the individual preferences? 

Problems with putting user information in the member folder.

Users objects are an object modeling the user with their properties,
attributes and capabilities.
Folder objects are container objects.

1. It makes the requirement of having a user folder for such. To my
thinking a folder is a container. I can put my stuff into a container.
My preferences go with me wherever I go regardless of where my stuff is.

2. Preferences are attributes of the user not the folder.

This is a good time to think about these things. Zope is moving towards
a cleanly and clearly defined Interface for it's programmers. The PTK
should do likewise.

Jimmie Houchin

Steve Alexander wrote:
> Jimmie Houchin wrote:
> >
> > I have been reading some stuff by Alan Holub on OOUI.
> I last read his stuff about a year ago, so I may be off-base with what
> follows:
> I found his ideas ill thought out. He advocated tightly coupling
> presentation with business logic by having them both in the same class.
> This went along with giving classes methods or inner-class instances
> that provide operations far removed from the core role of the class'
> instances.
> He also seemed to stress inheritance as the best way to reuse code and
> designs.
> Both experience and academic study make me disagree with those
> approaches, and I've developed a scepticism of his writings on
> object-oriented software development.
> If his writings have moved on from there, or I have misremembered them,
> I'd be interested to read some. Any pointers?
> --
> Steve Alexander
> Software Engineer
> Cat-Box limited
> http://www.cat-box.net