[Zope-dev] Anyone want to do Google Summer of code mentoring for PSF?

Jan-Wijbrand Kolman janwijbrand at gmail.com
Mon Mar 21 05:17:16 EDT 2011


On 3/20/11 16:12 PM, Wichert Akkerman wrote:
>>> Both Grok and Pyramid (or martian and venusian really) do a scan of
>>> the code to find the registration hints.
>>
>> Pyramid only does so if you tell it to do so by using config.scan(). You
>> are not obliged to do that, and I have several pyramid projects which do
>> not do any scanning. Not doing scanning has the advantage of making
>> configuration more explicit, and it speeds application startup immensely.

Just to get this clear for me: if you're not scanning, the information 
left by the class decorators would be "inert"? So, you'd have to do the 
registrations "yourself", right?

> Let me try to argue this better. Downsides of scanning are:
>
> - it scans your tests, which can result in unexpected behaviour you
>     may not expect (at least for venusian, not sure if this is true for
>     martian).

Martian skips tests by default. You can tell it, at least to a certain 
extend, what to scan and what not to scan.

> - you may have some draft files in your tree that are not ready for use
>     and never referenced anywhere, but a scan will still process them.

This is true.

> - scanning can take a long time, making application (re)start slow for
>     non-trivial projects

At what point is an application not trivial anymore? In applications I 
build so far, startup time has not been an issue at all. But maybe my 
applications are still on the trivial-end of the spectrum ;)

> - problems in the scanning process tend to be very hard debug. If a
>     view is not processed during scanning figuring out why can be
>     painful, and there are little to no tools to help you. This is
>     especially true for more complex scanning environments such as the
>     plone/dexterity/z3cform stack; as an example I spent over an hour
>     yesterday trying to figure out why a form was not picked up while
>     other views in the same python file worked fine.

I think this can be true. In my experience not relying on implicitly or 
"guessed configuration parameters helps a little here. What in this 
specific example was the reason for the view not being picked up?


regards, jw






More information about the Zope-Dev mailing list