
1. Re-usable components
1.1. jQuery plugin
1.1.1. Patterns
1.1.1.1. Event-driven
1.1.1.2. Object-driven
1.1.1.3. in-loop driven
1.1.1.4. Extend
1.1.1.5. Class and Function
1.2. $.widget factory
1.3. jQuery controller
2. Single-page applications
2.1. Backbone.js
2.1.1. Utilities
2.1.1.1. Underscore.js
2.1.2. Templating
2.1.2.1. jQuery templating
2.1.2.2. Mustache.js
2.1.2.3. Handlebars
2.1.2.4. PURE
2.1.2.5. MicroTemplates
2.1.2.6. Closure templates
2.1.2.7. jQuery.View
2.1.2.8. Dust.js
2.2. Sammy.js
3. Large-scale applications
3.1. Patterns
3.1.1. Architecture
3.1.1.1. MVC
3.1.1.1.1. JavaScriptMVC
3.1.1.1.2. Backbone.js
3.1.1.1.3. SproutCore
3.1.1.1.4. Sammy.js
3.1.1.1.5. Eyeballs.js
3.1.1.2. MVVM
3.1.1.2.1. Knockout.js
3.1.1.2.2. Knockback.js
3.1.2. Code structure
3.1.2.1. Module pattern
3.1.2.2. Inheritance pattern
3.1.2.3. Prototype pattern
3.1.2.4. Sandbox pattern
3.1.2.5. Observer pattern (PubSub)
3.1.2.6. Revealing module pattern
3.2. Events / Routing
3.2.1. PubSub
3.2.1.1. Custom events
3.2.1.2. jsSignals
3.2.1.3. OpenAjax Hub
3.2.1.4. Ben Alman's implem
3.2.1.5. Peter Higgin's implem
3.2.2. Hash / Routing / Bookmarking
3.2.2.1. routes.js
3.2.2.2. history.js
3.2.2.3. BBQ & hashchange
3.3. Unit Testing
3.3.1. QUnit
3.3.2. Jasmine
3.3.3. FireUnit
3.3.4. Crosscheck
3.3.5. JSSpec
3.3.6. jsTestDriver
3.4. Script loading
3.4.1. LAB.js
3.4.2. StealJS
3.4.3. HeadJS
3.4.4. ControlJS
3.4.5. yepnope.js
3.4.6. LazyLoad
3.4.7. curl.js
3.4.8. RequireJS
3.5. Build tools
3.5.1. Concatenation
3.5.1.1. Jake
3.5.1.2. Smasher
3.5.1.3. YUI compressor
3.5.1.4. Sprockets
3.5.1.5. Closure
3.5.2. Minification
3.5.2.1. Closure
3.5.2.2. YUI compressor
3.5.2.3. UglifyJS
3.5.2.4. ShrinkSafe
3.5.2.5. JSMin
3.6. Tools
3.6.1. Feature detection
3.6.1.1. Modernizr
3.6.1.2. has.js
3.6.1.3. HeadJS
3.6.2. LocalStorage
3.6.2.1. Store.js
3.6.2.2. jQuery Offline
3.6.2.3. PersistJS
3.6.3. Debouncing
3.6.3.1. jQuery debounce
3.6.3.2. doTimeout plugin