- You'll save an extra 5% on Books purchased from Amazon.ca, now through July 29th. No code necessary, discount applied at checkout. Here's how (restrictions apply)
Ajax Design Patterns Paperback – Jul 9 2006
|New from||Used from|
Special Offers and Product Promotions
No Kindle device required. Download one of the Free Kindle apps to start reading Kindle books on your smartphone, tablet, and computer.
Getting the download link through email is temporarily not available. Please check back later.
To get the free app, enter your mobile phone number.
"Ajax Design Patterns fills the literary void that exists in AJAX design by using real examples of best practice to enhance your apps. As with most AJAX titles it's pretty intense and hardcore reading, but then if you're into AJAX you're probably pretty hardcore too. Thankfully, Ajax Design Patterns is one of the most organised books on any programming subject. It's a massive book, but you won't get lost as the chapters are sensibly divided up and the sound layout means there's nothing whatsoever to fear. The book gets inside what makes top apps like NumSum tick and there's even a look at the code of DHTML Lemmings thrown in for good measure!" .Net, October 2006
Creating Web 2.0 Sites with Programming and Usability PatternsSee all Product Description
Most Helpful Customer Reviews on Amazon.com (beta)
Most of the "patterns" discussed in this book are specific solutions. I believe design patterns are solutions to generic problems. To make it feel like you are really reading a design patterns book, the author uses the generally accepted way of presenting patterns (problem/forces/solution). It just made the book worse rather than better. Anybody who has read a real design pattern book and then read this book will soon feel the artificiality.
One minor thing is that its server side examples are written in PHP. Of course, that is not a problem for PHP guys. It should, however, be mentioned in the description.
Part 1 - Introduction: Introducing Ajax; A Pattern-Led Tutorial; Ajax Design - Principles and Patterns
Part 2 - Foundational Technology Patterns: Ajax App; Display Manipulation; Web Remoting; Dynamic Behavior; Extended Technologies
Part 3 - Programming Patterns: Web Services; Browser-Server Dialogue; DOM Population; Code Generation and Reuse; Performance Optimization
Part 4 - Functionality and Usability Patterns: Widgets; Page Architecture; Visual Effects; Functionality
Part 5 - Development Patterns: Diagnosis; Testing
Part 6 - Appendixes: Ajax Frameworks and Libraries; Setting Up The Code Samples; Patterns and Pattern Languages; References; Index
Each of the chapters, such as Widgets, show a number of techniques and features that you can use in an Ajax application. In this particular case, there's the Slider, Progress Indicator, Drilldown, Data Grid, Rich Text Editor, Suggestion, Live Search, and Live Command-Line. Although each of these are presented as a "pattern", I think that's really a misuse of the term as it's commonly utilized in our industry. Patterns are general architectures that have been developed over time to solve particular types of design issues. A pattern called "Slider" is really just an example of how a slider widget can be used effectively in an Ajax application. Because of the specificity of a slider, I see that as more of a recipe than a pattern.
Having cleared that gripe, it's still an effective book. Each pattern/recipe starts with a basic usage story, followed by the problem statement, the forces that come into play, the actual solution, decisions that need to be addressed, real-world examples, alternatives to this particular feature, related patterns/recipes, and references to more information about the feature. This particular format makes for a very comprehensive discussion of each item, more so than you'd get in a straight tutorial or reference guide. As such, I think it makes for a good addition to the Ajax bookshelf...
As a true "patterns" guide, I think it misses what it tries to set out to do. As a cookbook for Ajax techniques, it works quite well...
First of all, the book starts explaining all the basics of AJAX with its definitons, how it works, related technologies and more. But the best point is: the author always explains using real-life examples, which makes everything easier to understand. The following chapters cover the AJAX Design Patterns properly. You can think about these design patterns as specific solutions, for example "how to made an auto-complete box with ajax", which will give you a great variety of "what can I do with ajax" things. The book also covers some architectural patterns too.
I think the main goal of this book is not only the great diversity of solutions that you can apply in your projects, but how the author explains them. He always starts the explanation of a design pattern with a brief history of how this pattern can help you giving real examples on where these patterns have being applied. Don't forget that one of the main goals of Design Patterns is to create a "vocabulary" to make an easier reference about a specific subject, and this book completely achieves this goal by giving names for each one of those solutions represented as a Design Pattern.
That's why I believe this book is a "must have" for any AJAX professional or student.
The first 2 chapters go over the basic components of Ajax and some basic code examples different techniques Ajax is used to enhance functionality and usability: live search, progress indicators and the one-second spot highlight. The end of chapter 2 is a kind of teaser of what is to come in explaining some of the patterns that will be discussed with website examples to illustrate how they are done: data grids, suggestion, popup, virtual workspace, browser-side cache, fat client, drag-and-drop, image slideshow, web services, etc.
Chapter 3 focuses on the basics of an ideal Ajax application and some the design principles that programmers should follow such as following web standards, accessibility, bandwidth issues, latency, and graceful degradation, among others. He sets you in the right direction in thinking how you should code your application with all these ideas in mind since proper patterns will give you smoother working applications with fewer problems when it is released into production. It is a very interesting chapter that does not go into much code but is more of a background on the issues that need to be thought about before developing your architecture. Some of these things you may have already read about in various blogs but is put together wonderfully in this early chapter.
Many of the chapters to follow go through various solutions and Michael goes through various techniques ion how to solve it giving the advantages and negatives starting in chapter 4. The first solution is an Ajax App that helps user enter data quickly with instant validation, integrated searches, and dynamic form field updates. Then he asks questions in order to create this application by first giving a background on how standard web apps (flash, java, desktop, etc) have done this in the past and how Ajax can do this now.
This is done throughout the book in covering different patterns with code illustrations, code snippets and web site examples. This is not a book that you can quickly breeze through mid you. It will take some time for you to read and understand everything the author is trying to get across, but you will have a greater understanding of how to use Ajax effectively and you probably will go back to this book time and time again after you finally finish it. I've never encountered a book quite so informative, but I'm so glad I did especially on such a topic such as Ajax that will be around for many years to come.
The end of the book has a great appendix on the many Ajax libraries and frameworks (Backbase, Dojo, Mochikit, OpenRico, Script.aculo.us, Moo.fx, JSON, SAJAX, Atlas.NET,, etc) that are out now.
Very well done.
Simply put, I did not see what I was hoping to get but there were so many duplicate use-cases, stories which resemble one after another (as some other reviewers did, I did not count how many), but overall the examples were too specific (as an example check this out from CodeExample: Yahoo!Mindset (on page 335)
OnClick = "setup('1505998205%3Ac26b16%3A105900fde%3Aff4', 'ajax");
I really don't think this statement belongs in a book. In the same story, there is even a mention of Hurricane Katrina. I mean, come on... let's cut the chase. Too many sets of the same "Real-World Examples" used in many different pattern makes the context blurry. It certainly lost me. Yes, it took about 10 months for me to read this book, but I had other projects and priorities.
Overall, the first chapters are well put, explaining what Ajax is etc. But it needs further tuning downstream. I give it 3 out of 5.
Look for similar items by category
- Books > Computers & Technology > Computer Science
- Books > Computers & Technology > Graphic Design
- Books > Computers & Technology > Networking & Cloud Computing > Internet, Groupware, & Telecommunications > Internet App Development
- Books > Computers & Technology > Programming > Languages & Tools
- Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Software Development
- Books > Computers & Technology > Software
- Books > Computers & Technology > Web Development > Programming > Ajax
- Books > Computers & Technology > Web Development > Programming > XML
- Books > Computers & Technology > Web Development > Website Architecture & Usability
- Books > Qualifying Textbooks - Fall 2007 > Computers & Internet
- Books > Textbooks > Computer Science & Information Systems > Computer Science
- Books > Textbooks > Computer Science & Information Systems > Programming Languages
- Books > Textbooks > Computer Science & Information Systems > Software Design & Engineering