Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

last tweaks for today.

  • Loading branch information...
commit 43d5a436b5f28a3dd928eadae5b7f19aaa77f4cb 1 parent 28c416b
@addyosmani authored
View
BIN  backbone-fundamentals.epub
Binary file not shown
View
35 backbone-fundamentals.rtf
@@ -47,8 +47,8 @@ Fundamentals
MVC, MVP & Backbone.js
}}}
\sa180\par}
-{\pard \ql \f0 \sa180 \li360 \fi-360 \bullet \tx360\tab \b \fs24 {\field{\*\fldinst{HYPERLINK "#thebasics"}}{\fldrslt{\ul
-The Basics
+{\pard \ql \f0 \sa180 \li360 \fi-360 \bullet \tx360\tab \b \fs24 {\field{\*\fldinst{HYPERLINK "#theinternals"}}{\fldrslt{\ul
+The Internals
}}}
\par}
{\pard \ql \f0 \sa0 \li720 \fi-360 \endash \tx360\tab {\field{\*\fldinst{HYPERLINK "#thebasics-models"}}{\fldrslt{\ul
@@ -108,7 +108,7 @@ Paginating Backbone.js Requests & Collections
}}}
*\sa180\par}
{\pard \ql \f0 \sa180 \li360 \fi-360 \bullet \tx360\tab \b \fs24 {\field{\*\fldinst{HYPERLINK "#advanced"}}{\fldrslt{\ul
-Advanced
+Going Modular
}}}
\par}
{\pard \ql \f0 \sa0 \li720 \fi-360 \endash \tx360\tab {\field{\*\fldinst{HYPERLINK "#modularjs"}}{\fldrslt{\ul
@@ -153,33 +153,24 @@ Unit Testing Backbone Applications With Jasmine
{\pard \ql \f0 \sa0 \li720 \fi-360 \endash \tx360\tab Jasmine\par}
{\pard \ql \f0 \sa0 \li1080 \fi-360 \bullet \tx360\tab Suites, Specs And Spies\par}
{\pard \ql \f0 \sa0 \li1080 \fi-360 \bullet \tx360\tab TDD With Backbone\par}
-{\pard \ql \f0 \sa0 \li1080 \fi-360 \bullet \tx360\tab {\field{\*\fldinst{HYPERLINK "#testing-jasmine-models"}}{\fldrslt{\ul
-Testing Models
-}}}
-\par}
-{\pard \ql \f0 \sa0 \li1080 \fi-360 \bullet \tx360\tab {\field{\*\fldinst{HYPERLINK "#testing-jasmine-collections"}}{\fldrslt{\ul
-Testing Collections
-}}}
-\par}
-{\pard \ql \f0 \sa0 \li1080 \fi-360 \bullet \tx360\tab {\field{\*\fldinst{HYPERLINK "#testing-jasmine-views"}}{\fldrslt{\ul
-Testing Views
-}}}
-\sa180\par}
+{\pard \ql \f0 \sa0 \li1080 \fi-360 \bullet \tx360\tab Testing Models\par}
+{\pard \ql \f0 \sa0 \li1080 \fi-360 \bullet \tx360\tab Testing Collections\par}
+{\pard \ql \f0 \sa0 \li1080 \fi-360 \bullet \tx360\tab Testing Views\sa180\par}
{\pard \ql \f0 \sa0 \li720 \fi-360 \endash \tx360\tab {\field{\*\fldinst{HYPERLINK "#unittestingqunit"}}{\fldrslt{\ul
Unit Testing Backbone Applications With QUnit And SinonJS
}}}
\par}
-{\pard \ql \f0 \sa0 \li1080 \fi-360 \bullet \tx360\tab Introduction\par}
-{\pard \ql \f0 \sa0 \li1080 \fi-360 \bullet \tx360\tab QUnit\par}
+{\pard \ql \f0 \sa0 \li720 \fi-360 \endash \tx360\tab Introduction\par}
+{\pard \ql \f0 \sa0 \li720 \fi-360 \endash \tx360\tab QUnit\par}
{\pard \ql \f0 \sa0 \li1080 \fi-360 \bullet \tx360\tab Assertions\par}
{\pard \ql \f0 \sa0 \li1080 \fi-360 \bullet \tx360\tab Adding structure to assertions\par}
{\pard \ql \f0 \sa0 \li1080 \fi-360 \bullet \tx360\tab Assertion examples\par}
{\pard \ql \f0 \sa0 \li1080 \fi-360 \bullet \tx360\tab Fixtures\par}
-{\pard \ql \f0 \sa0 \li1080 \fi-360 \bullet \tx360\tab Asynchronous code\par}
-{\pard \ql \f0 \sa0 \li1080 \fi-360 \bullet \tx360\tab SinonJS\par}
+{\pard \ql \f0 \sa0 \li1080 \fi-360 \bullet \tx360\tab Asynchronous code\sa180\par}
+{\pard \ql \f0 \sa0 \li720 \fi-360 \endash \tx360\tab SinonJS\par}
{\pard \ql \f0 \sa0 \li1080 \fi-360 \bullet \tx360\tab Stubs\par}
-{\pard \ql \f0 \sa0 \li1080 \fi-360 \bullet \tx360\tab Mocks\par}
-{\pard \ql \f0 \sa0 \li1080 \fi-360 \bullet \tx360\tab Practical\par}
+{\pard \ql \f0 \sa0 \li1080 \fi-360 \bullet \tx360\tab Mocks\sa180\par}
+{\pard \ql \f0 \sa0 \li720 \fi-360 \endash \tx360\tab Practical\par}
{\pard \ql \f0 \sa0 \li1080 \fi-360 \bullet \tx360\tab Testing Models\par}
{\pard \ql \f0 \sa0 \li1080 \fi-360 \bullet \tx360\tab Testing Collections\par}
{\pard \ql \f0 \sa0 \li1080 \fi-360 \bullet \tx360\tab Testing Views\par}
@@ -508,7 +499,7 @@ this
}}}
which can help\line \par}
{\pard \ql \f0 \sa0 \li360 \fi-360 \bullet \tx360\tab Clear and flexible conventions for structuring applications. Backbone doesn\u8217't force usage of all of its components and can work with only those needed.\sa180\par}
-{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs32 ##The Basics\par}
+{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs32 ##The Internals\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs28 What is Backbone?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 Backbone.js is one of a number of JavaScript frameworks for creating MVC-like web applications. On the front-end, it\u8217's my architectural framework of choice as it\u8217's both mature, relatively lightweight and can be easily tested using third-party toolkits such as Jasmine or QUnit. Other MVC frameworks you may be familiar with include Ember.js (SproutCore 2.0), Spine, YUILibrary and JavaScriptMVC.\par}
{\pard \ql \f0 \sa180 \li0 \fi0 Backbone is maintained by a number of contributors, most notably: Jeremy Ashkenas, creator of CoffeeScript, Docco and Underscore.js. As Jeremy is a believer in detailed documentation, there\u8217's a level of comfort in knowing you\u8217're unlikely to run into issues which are either not explained in the official docs or which can\u8217't be nailed down with some assistance from the #documentcloud IRC channel. I strongly recommend using the latter if you find yourself getting stuck.\par}
View
28 index.html
@@ -58,7 +58,7 @@ <h2 id="table-of-contents">Table Of Contents</h2>
<ul>
<li><a href="#mvc-mvp">MVC, MVP &amp; Backbone.js</a></li>
</ul></li>
-<li><h4><a href="#thebasics">The Basics</a></h4>
+<li><h4><a href="#theinternals">The Internals</a></h4>
<ul>
<li><a href="#thebasics-models">Models</a></li>
<li><a href="#thebasics-views">Views</a></li>
@@ -85,7 +85,7 @@ <h2 id="table-of-contents">Table Of Contents</h2>
<li><a href="#stack2">Building Backbone.js apps with Ruby, Sinatra, Haml and MongoDB</a></li>
<li><a href="#pagination">Paginating Backbone.js Requests &amp; Collections</a> *</li>
</ul></li>
-<li><h4><a href="#advanced">Advanced</a></h4>
+<li><h4><a href="#advanced">Going Modular</a></h4>
<ul>
<li><a href="#modularjs">Modular JavaScript</a></li>
<li><a href="#organizingmodules">Organizing modules with Require.js and AMD</a></li>
@@ -105,23 +105,27 @@ <h2 id="table-of-contents">Table Of Contents</h2>
<ul>
<li>Suites, Specs And Spies</li>
<li>TDD With Backbone</li>
-<li><a href="#testing-jasmine-models">Testing Models</a></li>
-<li><a href="#testing-jasmine-collections">Testing Collections</a></li>
-<li><a href="#testing-jasmine-views">Testing Views</a></li>
+<li>Testing Models</li>
+<li>Testing Collections</li>
+<li>Testing Views</li>
</ul></li>
-<li><a href="#unittestingqunit">Unit Testing Backbone Applications With QUnit And SinonJS</a>
-<ul>
+<li><a href="#unittestingqunit">Unit Testing Backbone Applications With QUnit And SinonJS</a></li>
<li>Introduction</li>
-<li>QUnit</li>
+<li>QUnit
+<ul>
<li>Assertions</li>
<li>Adding structure to assertions</li>
<li>Assertion examples</li>
<li>Fixtures</li>
<li>Asynchronous code</li>
-<li>SinonJS</li>
+</ul></li>
+<li>SinonJS
+<ul>
<li>Stubs</li>
<li>Mocks</li>
-<li>Practical</li>
+</ul></li>
+<li>Practical
+<ul>
<li>Testing Models</li>
<li>Testing Collections</li>
<li>Testing Views</li>
@@ -410,7 +414,7 @@ <h3 id="backbone.js">Backbone.js</h3>
<li>Doesn't support deeply nested models, though there are Backbone plugins such as <a href="https://github.com/PaulUithol/Backbone-relational">this</a> which can help<br /></li>
<li>Clear and flexible conventions for structuring applications. Backbone doesn't force usage of all of its components and can work with only those needed.</li>
</ul>
-<h2 id="the-basics">##<a name="thebasics">The Basics</a></h2>
+<h2 id="the-internals">##<a name="theinternals">The Internals</a></h2>
<h3 id="what-is-backbone">What is Backbone?</h3>
<p>Backbone.js is one of a number of JavaScript frameworks for creating MVC-like web applications. On the front-end, it's my architectural framework of choice as it's both mature, relatively lightweight and can be easily tested using third-party toolkits such as Jasmine or QUnit. Other MVC frameworks you may be familiar with include Ember.js (SproutCore 2.0), Spine, YUILibrary and JavaScriptMVC.</p>
<p>Backbone is maintained by a number of contributors, most notably: Jeremy Ashkenas, creator of CoffeeScript, Docco and Underscore.js. As Jeremy is a believer in detailed documentation, there's a level of comfort in knowing you're unlikely to run into issues which are either not explained in the official docs or which can't be nailed down with some assistance from the #documentcloud IRC channel. I strongly recommend using the latter if you find yourself getting stuck.</p>
@@ -428,7 +432,7 @@ <h2 id="is-backbone-right-for-you">Is Backbone right for you?</h2>
<p>&quot;I want something flexible which offers a minimalist solution to separating concerns in my application. It should support a persistence layer and RESTful sync, models, views (with controllers), event-driven communication, templating and routing. It should be imperative, allowing one to update the View when a model changes. I’d like some decisions about the architecture left up to me. Ideally, many large companies have used the solution to build non-trivial applications.</p>
<p>As I may be building something complex, I’d like there to be an active extension community around the framework that have already tried addressing larger problems (Marionette, Chaplin, Aura, Thorax). Ideally, there are also scaffolding tools (grunt-bbb, brunch) available for the solution.&quot;</p>
<p>If so, continue reading.</p>
-<h2 id="the-basics-1">The Basics</h2>
+<h2 id="the-basics">The Basics</h2>
<p>In this section, you'll learn the essentials of Backbone's models, views, collections and routers, as well as about using namespacing to organize your code. This isn't meant as a replacement for the official documentation, but it will help you understand many of the core concepts behind Backbone before you start building applications with it.</p>
<ul>
<li>Models</li>
View
20 index.md
@@ -21,7 +21,7 @@ I hope you find this book helpful!
* ####[Fundamentals](#fundamentals)
* [MVC, MVP & Backbone.js](#mvc-mvp)
-* ####[The Basics](#thebasics)
+* ####[The Internals](#theinternals)
* [Models](#thebasics-models)
* [Views](#thebasics-views)
* [Collections](#thebasics-collections)
@@ -46,7 +46,7 @@ I hope you find this book helpful!
* [Building Backbone.js apps with Ruby, Sinatra, Haml and MongoDB](#stack2)
* [Paginating Backbone.js Requests & Collections](#pagination) *
-* ####[Advanced](#advanced)
+* ####[Going Modular](#advanced)
* [Modular JavaScript](#modularjs)
* [Organizing modules with Require.js and AMD](#organizingmodules)
* [Keeping your templates external with the Require.js text plugin](#externaltemplates)
@@ -63,21 +63,21 @@ I hope you find this book helpful!
* Jasmine
* Suites, Specs And Spies
* TDD With Backbone
- * [Testing Models](#testing-jasmine-models)
- * [Testing Collections](#testing-jasmine-collections)
- * [Testing Views](#testing-jasmine-views)
+ * Testing Models
+ * Testing Collections
+ * Testing Views
* [Unit Testing Backbone Applications With QUnit And SinonJS](#unittestingqunit)
- * Introduction
- * QUnit
+ * Introduction
+ * QUnit
* Assertions
* Adding structure to assertions
* Assertion examples
* Fixtures
* Asynchronous code
- * SinonJS
+ * SinonJS
* Stubs
* Mocks
- * Practical
+ * Practical
* Testing Models
* Testing Collections
* Testing Views
@@ -528,7 +528,7 @@ It *is* however worth understanding where and why these concepts originated, so
-##<a name="thebasics">The Basics</a>
+##<a name="theinternals">The Internals</a>
---
###What is Backbone?
Please sign in to comment.
Something went wrong with that request. Please try again.