Let’s face it: Zope and Plone have a steep learning curve for new developers. Anybody remember when they were first confronted with a backtrace reaching up several dozen of layers all the way down to
Module ZPublisher.Publish, line 119, in publish? In a word: left to your own devices, debugging a troublesome bit of your own code can be quite frustrating, if, say, all you’ve done is misspell a variable and all you get is 164(!) lines of backtrace bleeping
TraversalError at you.
Well, the best kind of bugs are those that you don’t even produce in the first place, of course. Meaning that if a new developer has some ‘best practices’ to guide him, he or she can spend more time debugging the business logic of his or her application and less time banging his or her head against obscure implementation details of Zope 2, Zope 3, Archetypes, CMF, Five and uh… oh, yeah… Plone.
The problem is, though, that the collective wisdom of the community on how to deal with many of these issues isn’t really documented much. This is especially true for the new ‘bleeding edge’ technologies such as Zope 3 in general, Five and formlib. And who can really claim to know exactly what kind of many useful gems are hidden in the numerous z3 related repositiories (z3c, lovely, zc et. al.). For Zope 3 there’s of course the ‘new’ zope3-wiki that was created specifically to address the issue of lack of centralized documentation on zope 3, but I haven’t found it very helpful or accessible so far … however, mainly due to the fact, that it’s (of course) entirely Plone agnostic, so one of the difficult bits is to figure out, which of the information is even applicable.
This sprint is a wonderful opportunity to add some documentation to address some of the basics for Plone (Product) Developers, especially, since many of the authors of the aforementioned technologies are present at the sprint. We’re going to start with a how-to on using Viewlets … let’s see how that goes…