Grok 1.0 Web Development is a great introduction to what I think is a very powerful web technology stack: the Zope Toolkit. Grok provides a way for newcomers and those familiar with other Python web stacks to get started with ZTK, which can often seem insular, cryptic, and inaccessible. When a user is ready to "move up", they can start leveraging the power that underlies Grok. This book is a good introduction to that stack.
Grok 1.0 Web Development takes what as I think of as a customary approach to framework introductions, instructing the user on the basic features of the framework by building an application (in this case a to do list manager) and adding features and refining the code as it goes. This works well for Grok -- the amount of boilerplate code is kept to a minimum, by design, so the text can focus on first implementing the feature, then delving deeper to discuss the "best practice" around that tool if needed. For example, Chapter 6 covers ZODB Catalogs (index). It starts by defining the search view and user interface so that the reader has a functioning search tool to work with, then takes a diversion to discuss how one best structures their application to support search. These detailed drill downs are one of the most valuable parts of Grok 1.0 Web Development: they help the reader expand their understand beyond just implementing a feature, to implementing in a way that will be flexible and easy to support in the future. The [somewhat brief] advice on when to use the ZODB versus a relational database is another example of practical advice that I appreciated in the book.
Grok 1.0 Web Development is not perfect. In particular I wish the chapter on testing were earlier (the author's admonition that it "should not be treated as an afterthought" doesn't seem to jibe with its placement among the advanced topics towards the end of the book. I suppose I'm also a little sensitive to slogging on Zope 3 and it's "lack" of agility. I can probably be described as a Zope 3 / Zope component architecture apologist, but it seems the type of agility described is a rather narrow, specific definition. The sprints I did on Zope 3 at PyCon several years contributed more to my understanding and appreciation of test driven development and agile planning than just about anything. Yes, Grok gets it done without the ZCML; I think it's an exercise for the reader as to whether that's better or worse for your application.
I think that the Zope derived frameworks such as Grok and repoze.bfg are some of the most interesting in development today. Grok 1.0 Web Development does a great job of introducing Grok to developers who are new to web programming, or who already have some familiarity with another framework. I recommend it to anyone interested in building extensible web applications with a minimum of boilerplate.
Ссылка удалена правообладателем ---- The book removed at the request of the copyright holder.