Packt Publishing contacted me recently (it would seem, among many others) to ask if I’d like to review one of their new books: Ext JS 3.0 Cookbook, by Jorge Ramon. I was more than happy to oblige, since the book looked like it would contain some interesting material.
The Book’s Structure
Each recipe starts with an introduction to the problem, and then a ‘How to do it…’ section. This is usually followed by a ‘How it works…’ section—where Jorge goes a little bit deeper into the inner workings of the Ext JS library. This is, I think, where the book shines. At lot of the examples in the book don’t seem to be any more special than the samples provided by ExtJS, but this added depth and explanation gives the examples more value than the ExtJS samples.
The book is split into ten chapters:
- DOM and Data Types, the Ext JS Way
- Laying Out a Rich User Interface
- Load, Validate, and Submit Forms
- Fun with Combo Boxes and Date Fields
- Using Grid Panels to Display and Edit Tabular Data
- More Applications of Grid and List Views
- Keeping Tabs on Your Trees
- Making Progress with Menus and Toolbars
- Well-charted Territory
- Patterns in Ext JS
The structure of the book is a little strange. It works fine as a reference book, but when reading from cover to cover, the concepts in the recipes rarely seem to flow from one to the next. For this reason, I think the book may not be ideal for beginners. It also means that some explanations get repeated in different recipes. However, the reference style of the book is benefitted by the ‘See also…’ section at the end of each recipe, which directs you to related recipes.
The book would have gained, I think, from an initial chapter introducing Ext JS, rather than jumping straight into methods for detecting the user’s browser—which isn’t a particularly interesting topic to start on anyway.
The book is largely made up of code samples, as you would expect. However, I have a few small criticisms to make of the code:
- I feel that some of the samples are longer than they need to be (often a few pages long—the portlets recipe consists of nine pages of code interspersed with a few comments).
- The choice of variable names is sometimes poor (although this may be following from the Ext JS convention).
- Occasionally the formatting of the code is unhelpful—I noticed a comment had been wrapped, and on some examples the indentation was inconsistent.
- Some of the code lines are highlighted in bold to make them stand out, but I found that quite often this was over-used, or highlighted the wrong areas—so turned out to be not so helpful.
This is nit-picking really though—the code is generally quite appropriate to the topics in question, and if you’re familiar with Ext JS, you shouldn’t have problems understanding the code—but I’d have expected more attention to these areas by a publishing company that has probably never published a book without source code.
Some of the screenshots are not very clear and the annotations are sometimes a little confusing. In one case, the same half-page screenshot seemed to get duplicated four times, with very minor changes between them.
A little colour and better annotations would have really benefitted the book, especially since it is largely focussed on user interface design (and RRPs at £30.99/$49.99!)
I was surprised to see the occasional use of PHP, which didn’t actually seem to be required to explain the topic. Giving a snippet of raw JSON may have been more appropriate.
I’m not sure how other books from Packt are structured, but I think the book would have benefitted from ‘side boxes’ in the margin giving little extra hints, or explaining certain parts of the code in more detail. In my experience, this is a common and useful feature of computing books.
It was very nice to see a chapter on the use of design patterns in Ext JS. This is a topic that I found difficult when I started working with the library, and I didn’t manage to find much helpful material online at the time. The recipe on creating customised ‘vtypes’ was also interesting.
I feel like I’ve come up with plenty of criticisms, but in general I think the book is worth reading, even if just for the ~50% original material (which isn’t already available on the Ext JS samples page), and for the brief-but-valuable explanations of how things are working ‘under the hood’.
As a reference book, it feels very complete. I haven’t been able to think of any topics that it misses out. Mixing the recipes together should result in a substantial meal, and some very satisfied clients.
Update: I requested a link to some sample content: here’s the whole of Chapter 3, Load, Validate, and Submit Forms, for you to download.