Ajax Design Patterns: Creating Web 2.0 Sites with Programming and Usability Patterns By: Michael Mahemoff Published by O'Reilly
I'd like you to ask yourself two questions before you pick up Ajax Design Patterns: Creating Web 2.0 Sites with Programming and Usability Patterns... What is Ajax? What constitutes a Design Pattern? Your perception of this book written by Michael Mahemoff and published by O'Reilly will be affected by how you approach these concepts.
By : Michael Mahemoff
Design Patterns on the other hand have been around quite a time longer and so the meaning of the term is more established. These are formulas describing how to solve a common programming task. Having been proven tried and true, the patterns are often best-practices. Others may draw more blurred boundaries, though, which is why I suggest questioning what you consider the essence of a design pattern. Would debugging be a design pattern? Debugging is a necessary activity, though I don't know if I would go so far as to declare it a design pattern.
I appreciated the balanced attitude of the author which came through loud and clear in just the first few pages. Yes this is a book about Ajax, but he didn't push Ajax as a silver bullet curing all web development ailments. He acknowledges the strengths and weakness of Ajax and provides an honest comparison to other technologies out there, such as Flash. The reader is encouraged to use the best tool for the task at hand.
The layout of the book was interesting. Imagine your typical Web 2.0 community web site printed and bound and you'll have some idea as to the book's look and feel. Diagrams looked more like pencil sketches than illustrations laid-out by the publisher's graphics art department. Each design pattern discussed even has a set of tags/keywords listed, adding to this decidedly web 2.0 flavor. While I liked the images, I felt tagging was useless as there isn't a central index of all of them--something needed in a printed media with the absence of hyperlinking.
The book contains 70 patterns split across four groups: Foundational, Programming, Usability and Development. Each pattern is presented with a 'goal story,' problem statement, an enumeration of driving forces to take into consideration and real world examples. I appreciated that a scale was supplied to indicate the level of widespread acceptance for each pattern.
It took me a while to understand exactly what the book was. It will help you think about patterns but it won't necessarily teach you patterns. It's not an Ajax how-to (though there were some instructions in the book's first part), nor would I consider it a set of design pattern tutorials. Mahemoff has written a book that you'll find yourself reading over the course of several months and pondering the discussions he presents. It's not a book that you'll grab off your bookshelf to look up the finer points of implementing a pattern. Perhaps it would have been more apt for the book to carry the subtitle Ruminations on Web 2.0 Programming and Usability Patterns.
The pattern discussions were excellent and went in-depth, but the book lacked as much indexing as I would have liked. It would have been helpful if the book had an appendix indexing all the real world examples presented in the patterns. I found myself later wanting to explore a few of them online and had to dig through the text to find their URLs. The patterns themselves were indexed and were given a brief summary on the inside front and back covers which was nice.
What you get out of this book will be determined by how you approach it. If you're looking for honest, in-depth discussions on many of the design and usability patterns used in the budding Ajax community then you'll find a great deal in this book. If you expect it to be a how-to you'll be sadly disappointed. My advice would be to check out the website's wiki at ajaxpatterns.org and if you like what you see, think about picking up the book to add to your library.
DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware.