I’ve been bookmarking quite a few guides, docs, and other resources, some of which I thought I’d share here. (Oh and when I say “bookmarking”, I mean saving to a text file. I’m so high tech, dude.)
In particular, if you’re developing large-scale JavaScript-driven applications, some of these might be useful for you. Beginners be warned: Most of these are uber-intense, so not for the faint of heart. Nonetheless, I think beginners can still learn a few things despite the high-level of most of this information.
Essential JavaScript Design Patterns (Addy Osmani)
“Design patterns are reusable solutions to commonly occurring problems in software design. They are both exciting and a fascinating topic to explore in any programming language… In this book we will explore applying both classical and modern design patterns to the JavaScript programming language… This book is targeted at professional developers wishing to improve their knowledge of design patterns and how they can be applied to the JavaScript programming language.”
Principles of Writing Consistent, Idiomatic JavaScript (Rick Waldron)
“All code in any code-base should look like a single person typed it, no matter how many people contributed.”
“Part of being a good steward to a successful project is realizing that writing code for yourself is a Bad Idea™. If thousands of people are using your code, then write your code for maximum clarity, not your personal preference of how to get clever within the spec.”
Developing Backbone.js Applications (Addy Osmani)
“In this book, I will be covering the popular Backbone.js, which I consider the best of the current family of JavaScript architectural frameworks…. The goal of this book is to create an authoritative and centralized repository of information that can help those developing real-world apps with Backbone.”
Writing forward-compatible websites (MDN)
“This page explains how to write websites that do not break when new browser versions are released. This is especially important for intranets and other non-public websites; if we can’t see your code, we can’t see that it broke. It’s not always possible to follow all of these, but following as many of them as possible will help future-proof your website.”
JavaScript Patterns Collection (Shichuan)
“A JavaScript pattern and antipattern collection that covers function patterns, jQuery patterns, jQuery plugin patterns, design patterns, general patterns, literals and constructor patterns, object creation patterns, code reuse patterns, DOM and browser patterns.”
Efficient JavaScript (Mark Wilton-Jones / Opera)
“Traditionally, a Web page would not contain much scripting, or at least, not much that would affect the performance of that Web page. However, as Web pages become more like applications, the performance of scripts is having a bigger effect. With more and more applications being developed using Web technologies, improving the performance of scripts is becoming increasingly important.”
Patterns For Large-Scale JavaScript Application Architecture (Addy Osmani)
“I’m currently a JavaScript and UI developer at AOL helping to plan and write the front-end architecture to our next generation of client-facing applications. As these applications are both complex and often require an architecture that is scalable and highly-reusable, it’s one of my responsibilities to ensure the patterns used to implement such applications are as sustainable as possible.”
Got Any Others?
As usual, Addy Osmani dominates authorship in these types of references. I swear, that guy doesn’t sleep.
If you know of any other higher-level JavaScript resources for assisting in building efficient, scalable web apps, feel free to share them in the comments.
Every JavaScript Developer must read Object Oriented JavaScript and JavaScript Patterns by Stoyan Stefanov.
+1 It’s an excellent book.
+1 also, I broke down that wall with this book perfect for beginners.
There are tons of other great resources out there for getting your head around writing JavaScript for applications. Articles that I’ve found immensely useful:
– Nicholas Zakas’ Maintainable JavaScript post;
– Rebecca Murphey’s Code Org, Take 2 post;
Plus, both of them have great slides available on Slideshare. For more specific topics there’s…:
– Shi Chuan’s JavaScript Patterns Collection;
– Ben Cherry’s Writing Testable JavaScript;
– Kyle Simpson’s (pre)Maturely Optimize Your JavaScript;
– the Opera Dev team’s Efficient JavaScript article; and
– Alex Sexton’s UX of Language post (which goes into i18n/L10n).
All of these are great posts.
There is so much greatness in this article and the comments! Lots of JavaScript magic that would be a great addition to the list of JS tricks at http://www.tiljs.com/ :)
Thank you.
Nice post!! Javascript is the future for the web!
I’d like to recommend Douglas Crockford’s JSLint.
JSLint has been the greatest contributing factor to the improvement of my JS coding, particularly with regard to clarity/quality/robustness.
It’s gotten to the point now that I can write large chunks of code that are (at least, syntactically) bug-free on the first take.
For anyone using Sublime Text 2 as their editor, I recommend SublimeLinter which implements JSHint or JSLint for Sublime, with realtime linting.
I hate JS but its imp now used in every project so thanks mate
Thank you so much, I was looking for a good reference to start backbone.js
I just stumbled across this one today, too:
http://www.javageneration.com/?p=839
Looks like a good intro to backbone.js.
A good ‘online” book is Eloquent JavaScript from Marijn Haverbeke.
Definitely. I included that one in a previous post:
http://www.impressivewebs.com/learn-to-program/
Perhaps the Javascript the good parts from Crockford?
http://javascript.crockford.com/
Thanks for the link to Addy Osmani’s Backbone book. Although I’ve done quite a lot of research into Backbone during the past few weeks, that one never crossed my radar for some reason.
Really good js guide, i add this http://javascript.so/index.php/tag/library/ where you can find javascript software developed by kquery
This is a really nice set of resources that will really help you figure out just how JavaScript works.