Essential JavaScript And jQuery Design Patterns – A Free New Book


Hey guys. Today I'm happy to announce the release of a free book I've written called 'Essential JavaScript & jQuery Design Patterns For Beginners'. Design patterns are reusable solutions to commonly occurring problems in software development and are a very useful tool to have at your disposal.

I wanted to write this mini-book was because 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.

Update: Version 1.5.x of the book and above are available in either online form to read for free or via O'Reilly if you'd like to pick up physical or eBook formats of the book. The latter is a lot more visually pleasing than the PDF/eBooks I used to generate and I hope this combination of free or purchase options satisfies most readers needs. 

You can download my book and learning resources right away or read online if you'd prefer. 





Why A Free Book?

There's some really fantastic literature available out there on design patterns in JavaScript (Stoyan Stefanov's excellent 'JavaScript patterns' book comes to mind) but a lot of the JS-centric material requires purchased literature.

These books are definitely worth buying, but I personally feel that until a developer is interested enough in learning about patterns to make the leap to invest in these, the majority of material they have accessible online doesn't focus enough on how to apply design patterns to JavaScript or jQuery. That's where having a free book of this nature comes in useful.


I was the primary author of this book but I would like to thank JavaScript and design pattern enthusiast Alex Sexton for technically reviewing the content and ensuring that it was accurate. Alex also provides some insightful feedback on the book's content that helped improve it. I would also like to extend my thanks to Rebecca Murphy as her open-source book 'jQuery Fundamentals' served as the inspiration for me aiming to create a piece of useful free content that goes beyond the depth a standard article would.

What Does The Book Pack Contain?

The downloadable version of the book pack contains:

  • My 'Essential JavaScript & jQuery Design Patterns' Book
  • Printable Design Pattern sheets (courtesy Jason MacDonald)
  • Design Pattern Reference Cards (courtesy of DZone)




I'll be updating the book (and download links) with minor changes anytime they are made to keep the material as accurate as possible. If you have changes you would like to suggest, please feel free to get in touch and we can discuss them.

That's it!. Thanks for checking out this post. If you found my book helpful and would like to share it with your friends or colleagues, please feel free to click the retweet button below. Together we can help spread more awareness of design patterns in the JavaScript and jQuery communities.

Update: Due to popular demand, you can now also download Essential JavaScript & jQuery Design Patterns in ePub format (compatible with iBooks) as well as in PDF format.  Just click on any of the download buttons above and you'll grab the latest version of the book from GitHub.


  1. Pingback: 3 Free E-Books on jQuery

  2. Pingback: 3 Free E-Books on jQuery « kafyanm mike's Blog

  3. Pingback: bomnun's me2day

  4. Pingback: 3 Free E-Books on jQuery | 梅菜扣肉

  5. Pingback: Ramblings » MyNewLinks 05/25/2011

  6. Pingback: E-book gratuito sui design patterns in jQuery | Mr.Webmaster Blog

  7. Pingback: Online Tools For Web Developers | Technical

  8. Pingback: 3 Free E-Books on jQuery | 大蜀山

  9. Pingback: Web Development Tools | U.Ground

  10. Pingback: Useful Tools for web developers | U.Ground

  11. Pingback: Useful Tools for web developers | Best Wordpress Host

  12. Pingback: 45+ Useful Yet Free eBooks For Designers And Developers | Free and Useful Online Resources for Designers and Developers

  13. Pingback: jQuery Resources « Software Development and other ramblings

  14. Pingback: 3 Free E-Books on jQuery | JetLib News

  15. The author goes step by step in each example for each next step and source code you can simply run by copy/paste and see what happens. I must say that besides the practical examples for a cookbook, you will find that there is enough theoretical explanation for the provided recipes, which will make you follow the entire book chapters and recipes easily even if you are complete beginner with jQuery.

  16. Pingback: E-Books Gratuitos de jQuery

  17. Pingback: 15 Free E-Books Every Developer Should Have

  18. It is a great research! Thanks a lot!

    However I don't qiute agree with the second example of the singleton pattern.

    var mySingleton = function(){

    /* here are my private variables and methods */
    var privateVariable = 'something private';
    function showPrivate(){

    /* public variables and methods (which can access private variables and methods ) */
    return {
    publicVar:'the public can see this!'

    var single = mySingleton();
    single.publicMethod(); // logs 'something private'
    console.log(single.publicVar); // logs 'the public can see this!'

    Here I can make two different instances of the mySingleton class:

    var obj1 = mySingleton();
    var obj2 = mySingleton();

    obj1 == obj2 // will return false

    I expect this to be true, so every new instance of the mySingleton class should be exactly the same as the others?

    What is your opinion?

  19. Pingback: Writing javascript/jQuery that doesn’t suck | Uncategorized | theCSSdiv

  20. Pingback: Free Top 13 E-Books For Developers |

  21. Pingback: 15本Web开发人员应该拥有的免费电子书籍 | IMNT

  22. Pingback: 16 Useful and Free e-books for Web Designers and Developers

  23. Good job – bringing design patterns into the HOT world of javascript and jquery is a great thing. I like the way you have a jquery section which has simpler implementations of the javascript versions of patterns.
    I would have liked to have seen more detail re the observer pattern. E.g. Could the pure javascript implementation have been more pithy – I mean, can't you add multiple listeners to something in javascript without writing a home grown publish subscribe pattern implmentation? And the jquery observer implementation – could you not have demonstrated multiple subscriptions there (which is what you laboured to do in the initial pure javascript version)?
    Will read more over the next few weeks. Thanks!

  24. Hey guys. I'm currently getting ready for a few conferences so haven't had a chance to reply to everyone on this thread, but if you're looking for more detailed articles about specific design patterns, please feel free to look through the rest of the site.

    Someone was asking about more detail on the Observer pattern. I actually have quite a nice, detailed post on this available both here and on Script Junkie. For more information on modules, you may find my Large-scale JS article useful.

    The second volume of the Design Patterns book is currently being worked on and will contained detailed examples for most patterns.

  25. Pingback: Free Top 13 E-Books For Developers | ThemesCompany

  26. I think this is one of the most significant info for me. And i’m glad reading your article. But want to remark on few general things, The web site style is perfect, the articles is really excellent : D. Good job, cheers

  27. Nice,we're looking to implement a jquery slideshow if we could customise the design that would be great,thankyou for the book just downloaded it and away to have a look through,all the best.

  28. Pingback: 35 Free Ebooks for Every Web Developers

  29. Pingback: 40 Free and Useful eBooks for Developers and Designers | Joomla Magento Wordpress Prestashop blog posts from around the web

  30. Pingback: Web开发人员应有的15本免费电子书 | 佚名工作室

  31. Pingback: ennepi» Blog Archive » I migliori e-book gratuiti sul web

  32. Pingback: 19本Web开发与设计人员应该收藏的免费电子书 » 全信息

  33. Pingback: 15 libres E-Libros que Cada desarrollador debería tener « Binary Solutions / Prog

Leave a Reply

Required fields are marked *.