The Book of Zope Book Review
The Book of Zope
I've just spent a few days with Beehive's The Book of Zope published by No Starch Press. Having never built a web application before, I was definitely part of the author's target audience. Beginning Zope users as well as experienced developers, however, have received equal attention in this guide on writing web applications. Beehive's writers (see the Preface for the entire list of contributors) acknowledge that Zope may not be the web product for everyone.
In fact, they cite two well-known proprietary web design packages in the introduction. They are mindful of Zope's limitations throughout the book, but they capture its strengths as a web application package, and as a content management system, quite well. I was equally impressed by the attention to editing that is often missing in most technical guides. Books written about software, and computing in general, have a short shelf life; editing the text is a time consuming task.
Table of contents
Chapter 1: Fundamentals, Chapter 2: Quick Start, Chapter 3: Navigating Zope, Chapter 4: DTML, Chapter 5: Working With Zope Versions, Chapter 6: Users, Roles, and Security, Chapter 7: Local Roles and Permissions, Chapter 8: Some Methods for the Role.py & User.py Mods, Chapter 9: ZClasses, Chapter 10: Working with the ZClass, Chapter 11: The ZCatalog, Chapter 12: Zope and MySQL, Chapter 13: Programming Zope: Python in a Jiffy, Chapter 14:, Scripting Zope with Python, Chapter 15: Zope Products, Chapter 16: Debugging, Chapter 17: External Data Access, Appendix A: DTML and Built-in Attributes, Appendix B: The REQUEST Object, Appendix C: Source Code for the Website Product, Appendix D: Some ZCatalog Module Methods, Appendix E: Glossary
My point of view
The first three chapters of the book have enough basic information that nearly anyone reading them can navigate and operate the system screens. The core of the programming fundamentals for Zope is contained in Chapter 4 titled "DTML". Despite having only limited experience with HTML tags, I was still able to understand each of the examples with ease. If Zope is someone's first attempt at programming, this book will provide enough theory on redirection, looping, and the initialization of variables to make some sense of the fundamentals of coding in most languages.
The remaining portions of the text build on this early experience by explaining how Zope handles security and data integrity. What makes the book useful for both beginners and seasoned developers alike is the careful integration of useful technical "tricks" and Zope conventions that keeps the book interesting without falling into condescension. As the beginner gains an appreciation for how to build secure web applications, the novice- and expert-level programmer will appreciate the abundant shortcuts and automation techniques that fill every chapter.
Certainly all classes of developers will appreciate the way Beehive has attempted to capture all of the features of Zope in one book. There are chapters covering the fundamental elements of the system (Zope objects) and how to construct custom classes, modifying existing classes, and indexing them all with Zope's cataloging and internal database systems. The authors round out the book by providing a brief explanations on establishing external database connections to Zope, how to write Python scripts (for internal methods and external modules), debugging, external protocols, and finally a chapter dedicated on how to create Zope products. The latter topic covers how to create products (methods, modules, etc.) so that they function properly when used by other Zope developers.
Creating a product for your own use is good, creating something that "plays nice" with someone else's system is even better. The appendices encompass the reference sections that support the main text. They provide both beginner and experienced programmer with an abundance of useful technical information. There are generous sections on DTML, the REQUEST object and its requirements, an extensive outline of a website product for Zope, and a listing of common ZClass modules.
The chapters in The Book of Zope are mercifully short. The whole book could be read in one day, two days if the reader were to work through all of the examples. I took a few days to work through the material, taking about a half-hour to cover each section. The examples gradually become more complicated (building on the reader's past experience) as the book progresses, but at the end even a beginner should be able to produce a fairly polished product from this neatly compressed content management system. If you are an established database programmer, or a proficient Python programmer, this is one open source tool that you should spend a day with.
ConclusionThe Good - Pros
- Hit their target audience well
- Progressively more challenging topics and examples
The Bad - Cons
- None - I was shocked
The Ugly - Issues
The Verdict - Opinion
A good way to start exploring web application development