Sunday, June 13, 2010

Book Review for "Plone 3 Products Development Cookbook"


Let me make one thing clear to start: This is a book by developers, for developers. The authors clearly state in the Preface that the readers should have some knowledge of Python, Plone and Zope and I believe this is very true. There's little material here to get the newbie up to speed on basic concepts. But if you're already at that point, then this book reads like working notes from an expert Plone 3 consultant, and there is much worthwhile content here for you.

The first chapter is the only one that offers a newbie-level entry level. It covers Plone 3 installation, and gives some advice on establishing your initial Plone site. Once that chapters done, hang on tight-- the coddling is over! The text then jumps straight to recommendations for tools used for development. The authors clearly have a good amount of experience in adding functionality to Plone, and they offer great advice on which tools will be useful. Given the base of those two chapters, the book then launches right into the proper way to develop products for Plone 3.

The goals of the book are really outlined back in the preface. The authors have selected 10 pieces of functionality that are not found in a base Plone 3 installation. I found all 10 to be requests you might easily find in the 'real world'. (Examples: Prepare the website for internationalization, allow multimedia content that should be both playable on the site and downloadable. The rest are just as reasonable.)

Once you know what the authors are setting out to accomplish, you are presented with answers to all these challenges. The answers are formatted in a pattern repeated for each action that adds functionality:

Getting Ready - outlines installation prerequisites, the things you'll need to gather.
How to Do It - step by step instructions on how to implement your changes.
How It Works - after you've configured things in the previous step, this step explains why things work.
There's More - an optional section where further reading can be found, or maybe extras like test procedures.

Along the way the authors provide tips and techniques for expert Plone development. These include debugging, documentation, testing, and packaging. I was especially pleased that the authors took time to provide text on performance considerations, something not always present in books of this type.

If I had one wish for this book, it would be for more illustrations and a little more remedial material for developers not already knee-deep in Plone development. Outside that, I'd recommend that anyone doing Plone 3 development should look at this book. There are so many expert level tips and tricks contained here, I imagine nearly everyone is going to learn something-- many will learn many things.

The book can be found here.

Happy Reading!

No comments: