Let's Make a Framework: Free eBook

Alex R. Young





tutorials frameworks lmaf

Let's Make a Framework: Free eBook

Posted by Alex R. Young on .

tutorials frameworks lmaf

Let's Make a Framework: Free eBook

Posted by Alex R. Young on .


I've collected and edited the Let's Make a Framework articles into a
book that suitable for e-readers. Consider this a Christmas present!

Note: Remember that this book is based on progress up to commit 09d2c3.
As the framework changes the book might refer to obsolete parts of the
framework, so keep this in mind if referring to the latest version of
turing.js. Older commits are available in turing.js's


Last week we finished building a CommonJS-based test framework. Next we
need to replace the framework's tests with tests written using this
framework. First I'd like to review the progress we've made so far on
the project.

If you're new to the series or feeling lost after the last few parts,
here's a summary of every part so far. Feel free to dive in at any point
that interests you.

  1. Introduction

    1. Introduction to the Series
    2. Library Architecture
  2. Object Oriented JavaScript

    1. Classes, Inheritance, Extend
    2. Class Creation In Depth
  3. Functional Programming

    1. Introduction, Iterators, Performance Concerns
    2. More Functional Methods
  4. Selector Engine

    1. DOM History, Browser Support, Performance, Selector Engines
    2. Parsing, Tokenizer, Scanner
    3. Searching with Tokens, Selector Engine API, Tests
    4. onReady
  5. Events

    1. Introduction, Using Events, Implementations in the Wild
    2. Event Registration, W3C Events, Microsoft Events, API Design, Tests
    3. Stopping Events, Browser Fixes
  6. Aliasing and Packing

    1. jQuery-Style Aliasing, Packing and Minification
  7. Ajax

    1. Introduction, History, Request Objects, Sending Requests, Popular APIs
    2. Cross-Domain Requests, Implementations in the Wild, API Design
  8. Animations

    1. Introduction, Popular Frameworks, Queues and Events, Animation Basics
    2. Time-Based Animation, Animating Properties, Parsing Style Values, API
    3. Easing, Writing Easing Functions
    4. Animation Helpers, Fade, IE Support
    5. Colour Support, Transformations, Highlight Helper
    6. Movement Helper, Chained API
    7. CSS3 Specifications, CSS3 Transitions, Transforms, Animations, and Hardware Acceleration
    8. CSS3 Feature Detection
  9. Touch

    1. Supporting Touchscreen Devices, Orientation
    2. Events, State
  10. Chained APIs

    1. Namespaces and Chaining, API Design, fakeQuery Example
    2. Tests, Integration with Existing Library
    3. Chained Events
    4. Event Delegation
    5. Event Delegation Part 2
  11. Test Framework

    1. Introduction, CommonJS
    2. Assertions, In the Wild
    3. Testing, Exceptions
    4. Test Runner and Test Output


  • Rewriting the tests to work with turing-test.js
  • Revised packaging solution, JsLint builds
  • Pseudo-selectors
  • Better DOM manipulation
  • Bug fixes and browser support