[Grok-dev] Feedback: A Grok-Centric Explanation of Adaptation
Philipp von Weitershausen
philipp at weitershausen.de
Sun Jul 20 06:20:15 EDT 2008
Thanks to whomever wrote
http://grok.zope.org/documentation/tutorial/a-grok-centric-explanation-of-adaptation.
It's good to see more tutorials explaining adaption out there.
I only skimmed the article, mostly looked at the code. May I suggest a
few improvements? The VGA port example could be improved a lot if
* IVGAPort would gain a description for that 'connect()' method that's
used in plugLaptopIntoProjecter.
* The two models and the adapter implementation were removed. They don't
seem to add any value to the understanding of adaption at this point. In
particular, the emtpy adapter implementation is just plain confusing
since it doesn't at all describe what an adapter really has to do.
* plugLaptopIntoProjecter were more concise and written in a realistic
way. Here's how I would have written it:
def plugLaptopIntoProjecter(laptop, projector):
"Display your presentation on the wall!"
vga_capable = IVGAPort(laptop, None):
if vga_capable is None:
print "You should get a MacBook Pro."
vga_capable.connect(projector)
There's no need for that I...Port.providedBy() business. In fact, the
whole point of adaption is to NOT care about the object you have at hadn
and and simply trying to adapt it to something you DO care about
instead. Whether or not this yield the identity relation (iow, getting
the same object back) is irrelevant at that point.
More information about the Grok-dev
mailing list