Book review: Plone 3 Products Development Cookbook

Cover of Plone 3.3 Products Development
CookbookThe book I'm reviewing this time is Plone 3 Products Development Cookbook by Juan Pablo Giménez and Marcos F. Romero - published by Packt Publishing. The topic of the book is site development with the opensource CMS Plone 3 - a python-based CMS available at http://plone.org/

The book is a collection of recipes for how to do the various tasks you'll need to do to get a site going using Plone 3 - typical cookbook style. It's laid out in project-form: the authors stipulate a project (the design of a digital newspaper website with some particular requirements) and then go through the tasks for the project one by one in the form of recipes. The style is the same as in the previous Packt review I did: each chapter focuses on one particular concept, comprising a number of recipes, with each recipe containing an introduction, How to do it section, How it works, suggestions for further research/reading plus a cross-reference with recipes.

The book

The book is done in black and white (that includes all illustrations) and like the Typo3 book it suffers a bit from this, especially because the printing is too rough. You'll notice this with the images in the book - luckily there are only a few, otherwise it would have been more annoying to look at.

Mentioning illustrations, one of the slightly confusing points in the book is how some illustrations don't quite show what you want or need from them. Most of the time they are located in the How to do it section of a recipe and you will expect it to show how to do a specific step, but you'll find it shows something less useful, like the page you need to be working on (not in itself bad but you'll know that already from the recipe anyway).

One personal gripe I have with the book is a recurring theme of mine: the "download the code, we won't print it"-approach. I mentioned this in the Typo3 book review as well and it's still annoying to me. An example of why: I'm writing part of this review in an airport and there are certain parts I can't test because I cannot download the code (no, I'm not paying the absurd prices of airport-wifi. It's a market and I choose to show the idiots that their product is priced insanely high by not buying it).

Apart from that, the structure of the book makes it nice and easy to get into: the recipes make it easy to learn and the themed structure means reading you proceed quite naturally from topic to topic.

The recipes

You'll start at the very beginning with this book: installing python and Plone. This actually works quite well given the aim of the book: to build a site with certain characteristics and get it running. One recipe that is quite handy is how to install python 2.4: Plone 3 doesn't run on newer versions of python, so without this you'd be googling for a reliable solution to the problem before being able to dig into the real problem.

The recipes are typically ok explained. You obviously won't know everything related to creating Plone 3 sites after using the book but you'll have a good starting point and will be able to put a number of things in place. It should be noted, though, that the book focuses on creating Plone 3 packages (i.e. plugins) so you won't find recipes on how to design a site in Plone 3.

However, some recipes skip too fast ahead - for instance, one of the last recipes revolves around creating a production-site buildout so you can easily push the final site live. In this recipe you'll find a lot of interesting tools mentioned, such as Varnish - but there's little to no info about these tools or how to best use them with Plone 3. Here, you can likely argue that it would be outside the scope of the book (it focuses on Plone 3 products, not other stuff) but that doesn't remove the feeling that the book was either cut a bit short, published too early or that the recipe is simply meant as a teaser. Whatever the reason, it's annoying.

One aspect that I find particularly nice is the focus in recipes on testing. A couple of recipes are fully devoted to testing and apart from that most if not all recipes dealing with code also include code for testing. That gives you the chance to start a good habit, as well as a chance for catching errors or typos in the recipes: in case something doesn't work quite perfectly, the tests provide further options for debugging.

Another aspect I find positive is that the recipes introduce a lot of tools and options: if you manage to read them all, you'll have quite a few tools to work with when constructing a Plone 3 site. For instance, the authors introduce you to Dexterity, a content type framework not yet in stable version when the book was published - so, you'll find just one recipe using it, showing how product development might look in the future without spending too many resources on something that might be radically different tomorrow. This is the sort of teaser I'm happy to see, as opposed to the inclusion of various tools with half a line used to explain each (read: the recipe including Varnish).

Conclusion

The book has a few flaws - it feels as though too little attention was paid to the final product feel (illustrations, recipes feeling shortened) - but overall it seems informative. As a Plone beginner myself, this book gives me a good basis to work from. On the other hand, I doubt that experienced Plone 3 developers will get that much out of the book - however, because it's a cookbook, even developers with some Plone 3 experience might gain something from it as a reference-book.

If you're interested in getting started with Plone 3 development, this book is not a bad place to start. Personally, I'm not sure the Plone way is my way: it seems to suffer from the typical problem of "let's make a million tools to make Plone development easier" - if you need a tool to make development in the CMS easier, then a) your CMS has problems of it's own to start with and b) you had better make sure the tools created to alleviate the problem really work well and don't have problematic or annoying shortcomings, as you're putting another obstacle in the way of the developer (not only do I have to learn Plone 3, now I also have to learn how to use your tool. If I also have to learn how to fix the problems created by your tool, I've not gained anything, I've just lost time). Having said that, I'll also note that this cookbook has actually given me the motivation to try out the CMS: something in the books favor, I'm sure.

social