Repo for my 'Learning JavaScript Design Patterns' book
Dmitrii Pashutskii 21346c134a ES5 to ES2015 (#220) 1 year ago
book ES5 to ES2015 (#220) 1 year ago
cover Updating readme to reference cover 5 years ago
diagrams revising to match feedback from peter michaux 7 years ago
extras Adding latest version 8 years ago
test Adding revised setup with Grunt/Yeoman 5 years ago
.DS_Store Fix typo in "Flyweight section" (#211) 1 year ago
.bowerrc codecode is back! 5 years ago
.editorconfig Adding revised setup with Grunt/Yeoman 5 years ago
.gitattributes Adding revised setup with Grunt/Yeoman 5 years ago
.gitignore Adding revised setup with Grunt/Yeoman 5 years ago
.jshintrc Adding revised setup with Grunt/Yeoman 5 years ago
.travis.yml Add missing travis.yml. 4 years ago
Gruntfile.js Fixes #205 - fixes build system 1 year ago Prepare for 1.7.0 1 year ago
bower.json codecode is back! 5 years ago
package-lock.json ES5 to ES2015 (#220) 1 year ago
package.json Prepare for 1.7.0 1 year ago

Built with Grunt Build Status

Learning JavaScript Design Patterns

This is the source code for Learning JavaScript Design Patterns. It is licensed under the Creative Commons Attribution-Non Commercial-Share Alike 3.0 license. I hope you enjoy it, I hope it helps you learn, and I hope you'll support O'Reilly and me by purchasing a print copy of the book at O'

Design patterns are reusable solutions to commonly occurring problems in software development and are a very useful tool to have at your disposal. You can read the latest version online for free at any time.

Why is this book needed?

I wanted to write this book as I felt that patterns were an area a lot of new and intermediate JavaScript developers may not have had a chance to explore just yet and I'm hopeful my book will encourage you to check them out as they can be quite powerful.

Contributing and Errata

I'm always welcome to feedback on how the book can be improved.

Pull requests

If you would like to help improve the project, please feel free to send over a pull request. Some useful notes:

  • All changes should be made against the master branch.
  • The source of the book is currently in book/index.html.
  • Atomic commits make it easier to review changes. If you can separate changes out in this form, it'll save us time when trying to land.
  • Please review the version of the book online before requesting a change. It is updated more frequently than the physical version of the book but we do bring changes back in every few months.

Building the project

Install dependencies : npm install Build the project: grunt Preview: grunt serve

Additional formats

The project is currently authored in HTML, however we do plan on introducing builds for other formats (PDF, ePub) shortly. In the mean time, official releases for other formats can be obtained via O'Reilly.


If you would like to get involved with translating this project to another language, please open up a new issue. O'Reilly have a process for handling translations to ensure that they go through the same review process that the English version goes through.

So far, we've successfully had the book translated to Japanese. You can find that version on the O'Reilly Japan site.


This book is released under a Creative Commons Attribution-Noncommercial- No Derivative Works 3.0 United States License.

What this means it that the project is free to read and use, but the license does not permit commercial use of the material (i.e you can freely print out the book for your own use, but you can't sell it). I'm trying to best to publish all of my books in a free + purchased (if you would like to support these projects) form so I would greatly appreciate it if you would respect these terms.

Copyright Addy Osmani, 2017.