Creating, testing and maintaining a large JavaScript code base is not easy — especially since great resources on how to do this are hard to find. This page is a collection of the best articles, videos and presentations we've found on the topic.
Follow us on Twitter,
GitHub,
or check out our newsletter.
We'd love to hear your suggestions via e-mail or
as Github Issues.
We come across a lot of great articles on creating, testing and maintaining large JavaScript applications. This page is a continuously updated list of articles that help explain the syntax of JavaScript, how to organize your projects, how to test your code, and what's on the horizon. Have fun!
- Understanding JavaScript: Syntax, style and gotchas
- Organizing your code: API design, patterns and frameworks
- Testing your application: Testable code, readable tests
- Tools of the trade: Workflow, developer tools and debugging
- Performance and Profiling: Fast and memory-efficient code
- Securing your app: Principles, access and validation
- Under the hood: Understanding the browser
- On the horizon: Stuff to keep an eye on
- The league of awesome: Other superheroic resources
Organized by @kimjoar, @madsmobaek, @vandelay, @mollerse and @mikaelbrevik. – Last updated on
Understanding JavaScript
- Understanding JavaScript Function Invocation and "this" Yehuda Katz, yehudakatz.com
- Common JavaScript "Gotchas" James Fuller, jblotus.com
- Preparing Yourself for Modern JavaScript Development Justin Etheredge, codethinked.com
- Prototypes and Inheritance in JavaScript Scott Allen, msdn.microsoft.com
- Style Guide: A mostly reasonable approach to JavaScript Airbnb, github.com/airbnb
- Course Code School: The JavaScript Path Code School
- Book Eloquent JavaScript Marijn Haverbeke
- Book Effective JavaScript David Herman
- Book series You Don't Know JS Kyle Simpson
Organizing your code
- Designing Better JavaScript APIs Rodney Rehm, coding.smashingmagazine.com
- Asynchronous JS: Callbacks, Listeners, Control Flow Libs and Promises Sebastian Porto, sporto.github.com
- I .promise() to show you .when() to use Deferreds Alex McPherson, youtube.com
- JavaScript Promises Jake Archibald, html5rocks.com
- JavaScript Module Pattern: In-Depth Ben Cherry, adequatelygood.com
- Journey From RequireJS to Browserify Esa-Matti Suuronen, suuronen.org
- Client-Side Templating Lars Kappert, smashingmagazine.com
- Book JavaScript Allongé Reginald Braithwaite
- Book JavaScript Patterns Stoyan Stefanov
- Book JavaScript Web Applications Alex MacCaw
- The Hikikomori's Guide to JavaScript Quil, robotlolita.me
Testing your application
- Writing Testable Frontend Javascript Part 1 – Anti-patterns and their fixes Shane Tomlinson, shanetomlinson.com
- Writing Testable JavaScript Ben Cherry, adequatelygood.com
- Make tests read like a book Wolfram Kriesing, uxebu.com
- The Plight of Pinocchio: JavaScript's quest to become a real language Brandon Keepers, opensoul.org
- CourseLet's Code: Test-Driven JavaScript James Shore, letscodejavascript.com
- Book JavaScript Testing Recipes James Coglan
Tools of the trade
- Automating Your Front-end Workflow Addy Osmani, youtube.com
- Discover DevTools Code School, codeschool.com
- Chrome Developer Tools Google, developers.google.com
- "The Breakpoint" episodes Paul Irish and Addy Osmani, youtube.com
- Control the Complexity of Your JavaScript Functions with JSHint Elijah Manor, elijahmanor.com
Performance and Profiling
- Writing Fast, Memory-Efficient JavaScript Addy Osmani, smashingmagazine.com
- Improving Web App Performance With the Chrome DevTools Addy Osmani, addyosmani.com
- Jank Busters: Building Performant Web Apps Nat Duca & Tom Wiltzius, youtube.com
- Leaner, Meaner, Faster Animations with requestAnimationFrame Paul Lewis, html5rocks.com
- How (not) to trigger a layout in WebKit Tony Gentilcore, gent.ilcore.com
- Book High Performance Browser Networking Ilya Grigorik
- Book High Performance JavaScript Nicholas C. Zakas
Securing your app
Under the hood
On the horizon
- The Web Can Do That!? Eric Bidelman, youtube.com
- Overview of ECMAScript 6 features Luke Hoban, github.com/lukehoban
- Deploying JavaScript Applications Alex Sexton, alexsexton.com
- Immutability, interactivity & JavaScript David Nolen, youtube.com
- What is virtual DOM? Jack Bishop, jbi.sh
- Methods of communication Remy Sharp, html5doctor.com
- The introduction to Reactive Programming you've been missing André Staltz, github.com/staltz
- Components TJ Holowaychuk, tjholowaychuk.com
- JavaScript Dependency Injection Merrick Christensen, merrickchristensen.com