Pro JavaScript Design Patterns and over 670,000 other books are available for Amazon Kindle – Amazon’s new wireless reading device. Learn more

 

or
Sign in to turn on 1-Click ordering.
Express Checkout with PayPhrase
What's this? | Create PayPhrase
More Buying Choices
Have one to sell? Sell yours here
or
Get a $9.25 Amazon.com Gift Card
Pro JavaScript Design Patterns (Recipes: a Problem-Solution Ap)
 
 
Start reading Pro JavaScript Design Patterns on your Kindle in under a minute.

Don’t have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Pro JavaScript Design Patterns (Recipes: a Problem-Solution Ap) [Paperback]

Ross Harmes (Author), Dustin Diaz (Author)
4.3 out of 5 stars  See all reviews (20 customer reviews)

List Price: $44.99
Price: $29.69 & this item ships for FREE with Super Saver Shipping. Details
You Save: $15.30 (34%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.
Want it delivered Friday, September 10? Choose One-Day Shipping at checkout. Details
22 new from $24.99 12 used from $24.99
Textbook StudentJoin Amazon Student and get FREE Two-Day Shipping for one year with Amazon Prime shipping benefits.

Formats

Amazon Price New from Used from
Kindle Edition $23.75  
Paperback $29.69  
Sell This Book Back for $9.25
Whether you buy it used on Amazon for $24.99 or somewhere else, you can sell it back to our Textbook Buyback Store at the current price of $9.25 through December 31, 2010. Restrictions Apply
Used Price$24.99
Buyback Price$9.25
Price after
Buyback
$15.74

Frequently Bought Together

Pro JavaScript Design Patterns (Recipes: a Problem-Solution Ap) + Object-Oriented JavaScript: Create scalable, reusable high-quality JavaScript applications and libraries + JavaScript: The Good Parts
Price For All Three: $83.48

Show availability and shipping details

Buy the selected items together
  • In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details

  • Object-Oriented JavaScript: Create scalable, reusable high-quality JavaScript applications and libraries$34.00

    In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details

  • JavaScript: The Good Parts$19.79

    In Stock.
    Ships from and sold by Amazon.com.
    Eligible for FREE Super Saver Shipping on orders over $25. Details


Customers Who Bought This Item Also Bought


Editorial Reviews

Product Description

As a web developer, you’ll already know that JavaScript is a powerful language, allowing you to add an impressive array of dynamic functionality to otherwise static web sites. But there is more power waiting to be unlocked—JavaScript is capable of full object–oriented capabilities, and by applying OOP principles, best practices, and design patterns to your code, you can make it more powerful, more efficient, and easier to work with alone or as part of a team.

With Pro JavaScript Design Patterns, you’ll start with the basics of object–oriented programming in JavaScript applicable to design patterns, including making JavaScript more expressive, inheritance, encapsulation, information hiding, and more. With that covered, you can kick–start your JavaScript development in the second part of the book, where you’ll find detail on how to implement and take advantage of several design patterns in JavaScript, including composites, decorators, façades, adapters, and many more.

Each chapter is packed with real–world examples of how the design patterns are best used and expert advice on writing better code, as well as what to watch out for. Along the way you’ll discover how to create your own libraries and APIs for even more efficient coding.

  • Master the basics of object–oriented programming in JavaScript, as they apply to design patterns.
  • Apply design patterns to your kick–start your JavaScript development.
  • Work through several real–world examples.

What you’ll learn

  • How to apply object–oriented programming techniques in JavaScript
  • How to take advantage of inheritance, interfaces, and encapsulation and information hiding to kick–start your JavaScript development
  • How to implement several design patterns in your JavaScript projects, including factory, façade, bridge, composite, adapter, decorator, flyweight, proxy, command, observer, and chain of responsibility
  • How to make your code easier to manage in a team environment, as well as on your own
  • How to create your own libraries and APIs

Who is this book for?

This book will be an invaluable learning tool for any experienced JavaScript developer.

About the Apress Pro Series

The Apress Pro series books are practical, professional tutorials to keep you on and moving up the professional ladder.

You have gotten the job, now you need to hone your skills in these tough competitive times. The Apress Pro series expands your skills and expertise in exactly the areas you need. Master the content of a Pro book, and you will always be able to get the job done in a professional development project. Written by experts in their field, Pro series books from Apress give you the hard–won solutions to problems you will face in your professional programming career.

About the Author

Ross Harmes works as a frontend engineer in Sunnyvale, California, where he creates modular and reusable JavaScript components for Yahoo! Small Business.



Dustin Diaz is a user interface engineer for Google in Mountain View, California. He enjoys writing JavaScript, CSS, and HTML, as well as making interactive and usable interfaces to inspire passionate users.


Product Details

  • Paperback: 269 pages
  • Publisher: Apress; 1 edition (December 10, 2007)
  • Language: English
  • ISBN-10: 159059908X
  • ISBN-13: 978-1590599082
  • Product Dimensions: 9.8 x 9.1 x 0.9 inches
  • Shipping Weight: 1.2 pounds (View shipping rates and policies)
  • Average Customer Review: 4.3 out of 5 stars  See all reviews (20 customer reviews)
  • Amazon Bestsellers Rank: #101,375 in Books (See Top 100 in Books)
    #30 in  Books > Computers & Internet > Web Development > Programming > JavaScript

More About the Author

Ross Harmes
Discover books, learn about writers, read author blogs, and more.

Visit Amazon's Ross Harmes Page

Inside This Book (learn more)

What Do Customers Ultimately Buy After Viewing This Item?

Pro JavaScript Design Patterns (Recipes: a Problem-Solution Ap)
63% buy the item featured on this page:
Pro JavaScript Design Patterns (Recipes: a Problem-Solution Ap) 4.3 out of 5 stars (20)
$29.69
Object-Oriented JavaScript: Create scalable, reusable high-quality JavaScript applications and libraries
16% buy
Object-Oriented JavaScript: Create scalable, reusable high-quality JavaScript applications and libraries 4.5 out of 5 stars (22)
$34.00
JavaScript: The Good Parts
9% buy
JavaScript: The Good Parts 4.2 out of 5 stars (69)
$19.79
jQuery Cookbook: Solutions & Examples for jQuery Developers (Animal Guide)
6% buy
jQuery Cookbook: Solutions & Examples for jQuery Developers (Animal Guide) 4.7 out of 5 stars (16)
$23.09

Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
 
(8)
(3)
(3)

Your tags: Add your first tag
 

 

Customer Reviews

20 Reviews
5 star:
 (12)
4 star:
 (5)
3 star:
 (1)
2 star:
 (1)
1 star:
 (1)
 
 
 
 
 
Average Customer Review
4.3 out of 5 stars (20 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

 
24 of 26 people found the following review helpful:
4.0 out of 5 stars An excellent title for experienced JavaScript developers, January 20, 2008
By James Stewart (Grand Rapids, MI, USA) - See all my reviews
(REAL NAME)   
This review is from: Pro JavaScript Design Patterns (Recipes: a Problem-Solution Ap) (Paperback)
Design patterns, and particularly their application in dynamic languages can be a controversial topic, and every now and again another round of blog posts bubbles up appalled at the way a new group of programmers have become infatuated with design patterns. Applied without care design patterns can quickly lead to over-engineered code that seems designed as much to draw on as many of the established patterns as possible as to solve the intended problem. But if applied with care, and with consideration of how a pattern applies in the context of your chosen language they can be a helpful way to draw on the wisdom of the coders that came before you, and make your code easier to understand to those who may inherit it.

Written by Dustin Diaz (of Google) and Ross Harmes (of Yahoo), Pro Javascript Design Patterns builds on experience of building complex, high profile javascript applications. That experience shows as each pattern is introduced with solid examples and sample code and then refined to provide looser-coupling, more flexibility and/or better performance.

Early on in the book I was concerned that some of the solutions could become too heavy and the early introduction of interfaces hinted at something akin to the early approaches to pattern usage in PHP, which often looked more like an attempt to turn PHP into Java than a way to use PHP's own features better. As the book goes on the usefulness of those interfaces, particularly for large development teams, becomes clear and most of those concerns are allayed, especially as the authors offer pros and cons for the use of each pattern and are clearly focussed on how these patterns can help produce more robust solutions.

Most of the patterns will have a fairly immediate impact for developers new to them, and even for those who have used them in other contexts it is helpful to see how they have been applied in JavaScript. Most modern JavaScript libraries rely on several of these patterns to abstract out handling of different browser quirks or adding new event types, and even if you rely heavily on one or more of the major libraries this guide may well help you understand their internals better.

I've sometimes been skeptical of books claiming to be targeted at an advanced target. Labels like "pro" are often handed out far too easily. But in this case it seems deserved. While the book does a good job of quickly introducing approaches to object-oriented programming in JavaScript, that's based on an assumption of a solid knowledge of the language and of OO development in at least one language. If you're a newcomer to JavaScript or just looking for a way to add a few fancy features to your web pages this isn't be book for you. But if you have some serious JavaScript development experience and are needing a way to tighten up your code to make it more modular and more maintainable, this book is well worth your time.

Disclaimer: I was sent a copy of this book for review by the publisher.
Help other customers find the most helpful reviews  
Was this review helpful to you? Yes No


 
11 of 11 people found the following review helpful:
5.0 out of 5 stars Toughie not fluffy, March 25, 2008
By emh425 (California) - See all my reviews
This review is from: Pro JavaScript Design Patterns (Recipes: a Problem-Solution Ap) (Paperback)
This book is a "JavaScript for Programmers" book. It's very detailed and advanced. I wouldn't classify it as a "JavaScript for Web Weenies" or a "JavaScript for Stupid UI Tricks" book at all. If you don't know OOP concepts in another language already, this book really might be too much for you and could frustrate you. This book is good if you are a server-side programmer and you want to know how to push JavaScript about as far as it can go (at this point). If you are a web programmer/designer with a light understanding of OOP concepts and you want to "go deep", this book could be ok, but I would try to learn OOP from another language first because this book would read better with that background knowledge. Also, I am recommending that you already know OOP from another language because you can really shoot yourself in the foot with JavaScript because it's *so* flexible and the authors prove this well! I think it's probably a good idea to know when you're going off in the weeds and JavaScript really doesn't provide many boundaries where other languages have stricter controls on what you can do.

This book shows that when used by an experienced person, JavaScript is no joke. Seriously.
Help other customers find the most helpful reviews  
Was this review helpful to you? Yes No


 
5 of 5 people found the following review helpful:
5.0 out of 5 stars Great Design Pattern Book, May 27, 2009
This review is from: Pro JavaScript Design Patterns (Recipes: a Problem-Solution Ap) (Paperback)
When you read the book, "Pro JavaScript Design Patterns" from Ross Harmes and Dustin Diaz, it's clear that Ross and Dustin have a strong understanding of JavaScript, its strengths, and its limitations. JavaScript has a lot of stengths, in that it supports dynamic typing at runtime, public and private typing of members, flexible coding style , and existing support of class/object development. Its weaknesses, such as support for other constructs, like explicit namespaces or interface support, the writers attempt to make up for by showing potential workarounds to the issue.

The first three chapters setup some of the more complex topics: flexibility and mutability of objects, dynamic typing, structuring of classes and how to assign methods to an object's prototype. Another important subject is the differentiation between public and private members, and how these members are scoped and accessed in the class's instance.

Speaking of classes, there are a couple of different ways to setup class definitions and inheritance. The first option is prototypical inheritance, where the derived class inherits the members of the base class. Other options are mixin classes, using a helper method to copy over class definitions from one object to another. This book, with great detail, discusses the differences between the two options.
The book continues to discuss the following design patterns, and implements in full JavaScript. The concepts in the first four chapters, discussed above, are reused in the design pattern process. Each chapter highlighted below has an explanation, example (or several), guide on when to implement, pros, cons, and summary.

* Singleton Pattern - While not following the exact traditional pattern that you would see in other server-based environments, like the .NET framework, the Singleton pattern implemented in JavaScript provides a central accessible object to the application. The book also covers the subject of lazy instantiation and brancing of internal members (one example cited was to vary method implementation by browser).
* Chaining - More commonly seen in the JQuery library, chaining is the creation of a central object that gets returned from every method call. Within the prototype of every (or at least most) method is a call to return that same object. This way, the object can call one method after the other, after the other, in a more convenient fashion.
* Factory Pattern - The factory pattern provides a way to create the correct object using some sort of identifier (string, enum, object, etc.). The factory pattern instantiates an object that inherits from the same base class type, and thus the factory is responsible for its instantiation.
* Bridge Pattern - This pattern bridges multiple classes together that implement a similar functionality. It's a way to break out logical components into different objects, and follow more closely the Singular Responsibility pattern.
* Composite Pattern - This pattern requires that a particular set of objects all implement the same interface,regardless of whether a specific function is used within that object or not. The pattern is made up of leaf elements (elements at the bottom of the structure), and composite elements (which have one or more composite/leaf elements). The example used to illustrate this pattern is displaying of individual elements (textboxes and such), versus displaying composite elements.
* Façade Pattern - The façade pattern simplifies common tasks by grouping them into a parent function. For example, there are various nuances in JavaScript that vary by browser. The façade pattern facilitates working around these nuances by creating a central object with a method that checks browser type, and calls the correct method. From then on, the developer has to call this one method, instead of handling the various JavaScript nuances.
* Adapter Pattern - The adapter pattern provides a common interface across disparate interfaces that provide differing implementations. For instance, suppose you had to integrate various web service implementations. Each implementation would have a different implementation; the adapter pattern can accommodate this by providing one common interface, which this object then interacts with the web service.
* Decorator Pattern - The decorator pattern can be used to modify the behavior of its target. Decorators can be strung together to continually alter its behavior in some way, providing that each decorator alters the object appropriately. The chapter also explains what to watch out for when implementing this pattern, such as the order the patterns are created and processed.
* Flyweight Pattern - This pattern provides a caching to reuse commonly used elements, to make the underlying processes run faster. The system would first check the cache to see if the object exists before instantiating it.
* Proxy Pattern - A proxy provides access control to its underlying object's methods calls. It implements the same methods as its target, and can be a way to optimize usage of resources (especially expensive ones). This isn't necessarily related to just security in this regard. There are three types of proxies: virtual proxy, remote proxy, and protection proxy.
* Observer Pattern - The observer pattern uses subscribers and publishers. The publisher publishes to its subscriber that some event happened, and the subscriber can react to it in some way. One approach is through the use of a delegate that the publisher can call.
* Command Pattern - A command is some action that occurs within the application. A command provides a specific interface that varying command objects implement. The command can then be executed and perform its underlying action: this may be copy, paste, undo, or other operations.
* Chain of Responsibility Pattern - The chain of responsibility pattern is similar to some of the above patterns: it uses a chaining approach, which consists of firstly the sender, followed by a series of receivers that will process or ignore the request. It's a complex design pattern that the book describes very well.

Most of the chapters are explained very well; some of the examples didn't make the most sense to me as I didn't fully grasp some of the patterns. It's clear the authors know a lot more about design patterns than I do. However, don't let that detract you from the book because reading it again and trying it out yourself will help you to grasp the fundamentals. Alternatively, most of the examples are clear, concise, and to the topic at hand.

The book is a small book, consisting of many chapters (nicely broken out so I was able to do one a day). It has a lot of power to the punch for its size, which makes it a great book, and a great overview of design patterns in the JavaScript world, a world much different than most server-based languages.
Help other customers find the most helpful reviews  
Was this review helpful to you? Yes No

Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews

4.0 out of 5 stars Better than online tutorials.
Great book on design patterns.
Part 1 was the most useful because I discovered new tricks for encapsulation, inheritances and other concepts that you pick up from reading... Read more
Published 7 days ago by Larry Battle

5.0 out of 5 stars Great read
Must warn the reader that I'm not a great JS hacker and probably only a decent engineer in general . . Read more
Published 1 month ago by Jim Bob

1.0 out of 5 stars Good ideas, but needs another round of editing
There are some good ideas in this book, and it's worth a quick read, but it is desperate need of strict editing. Read more
Published 2 months ago by B. Trent

2.0 out of 5 stars Not as good...
I quit reading this book.
Do not misunderstand me: the writing style is clear and the authors seem to know the topic. Read more
Published 5 months ago by Costa Michele

5.0 out of 5 stars Good for programmers...
I've been programming in Java for over 10 years and am very familiar with design patterns and coding practices. Read more
Published 6 months ago by Broadmeadow

3.0 out of 5 stars Not too bad, but nothing really groundbreaking
Title pretty much says it all. I find myself skimming more than reading as there's a lot of common sense stuff in here with a few interesting nuggets from time to time.
Published 9 months ago by Kevin King

5.0 out of 5 stars One of the best javascript books
This book is really useful for Novice javascript programmer. It covers lot of basic details with good examples.
Published 11 months ago by Bhanu Koppaka

5.0 out of 5 stars What every JS coder needs in their arsenal
This is the perfect book for any intermediate JS coder. The first part of the book discusses advanced topics like closures, object scope, prototypal inheritance, and first-order... Read more
Published 13 months ago by Colin ODell

4.0 out of 5 stars Very Helpful
This book provides some nice detail concerning object oriented programming and Design Pattern usage in JavaScript. Read more
Published 20 months ago by Mark Phillips

5.0 out of 5 stars the best book i've ever read about javascript OOP
the book is amazing and front-end engineer should not miss this one , it take you to the Guru level of knowledge with javascript OOP techniques and API creation world through... Read more
Published on September 1, 2008 by Mostafa farghaly

Only search this product's reviews



Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 


Active discussions in related forums
Search Customer Discussions
Search all Amazon discussions
   





Look for Similar Items by Category


Look for Similar Items by Subject

 

Feedback

If you need help or have a question for Customer Service, contact us.
 Would you like to update product info or give feedback on images?
Is there any other feedback you would like to provide?

Your comments can help make our site better for everyone.


Your Recent History

 (What's this?)

After viewing product detail pages or search results, look here to find an easy way to navigate back to pages you are interested in.