Stephan Richter wrote:
On Monday 15 January 2007 14:25, Sidnei da Silva wrote:
'We've tried to look up an adapter for (ISomething, ITheOther) but
none was found'
'Found an adapter for IFoo, which is a base class for the IBar
interface requested. No adapter has been found for the most-specific
interface IBar'
Comments?
My major concern is speed here.
It's a bit early to have that concern, we haven't even come up with a
strategy yet ;).
"Premature optimization is the root of all evil" -- Donald E. Knuth
Any debug handling will make the registry
slower; I am using adapters very heavily in my code and any slow-down of one
lookup would be multiplied many times.
There are certainly ways in Python to have debug code in an application
that won't be run in production mode, e.g.:
if __debug__:
# do expensive logging call here, or whatever
Code like this won't be run with python -O (which is what you'd
obviously use in production).
I wonder whether a different approach could be taken. The APIDOC code does
already a registration analysis. Maybe we can use the registrations in a away
that they simulate the adapter registry. Thus you could provide APIDOC (via
the Web UI or Python) with a component or instance and it tells you how it
tries to look up the adapter. Clearly that would be much slower, but okay for
inspection.
Sounds good. I like the explainAdapter() suggestion.
--
http://worldcookery.com -- Professional Zope documentation and training
2nd edition of Web Component Development with Zope 3 is now shipping!
_______________________________________________
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com