Index

Symbols

() (parentheses), Method Context

A

acceptance criteria, Defining the App
access control
about, Access Control
authentication, AuthenticationDelegated authentication
authorization, AuthorizationOAuth 2.0
recommendations, Conclusion
access control lists (ACLs), Authorization
ACLs (access control lists), Authorization
ad-hoc polymorphism, Generics and Collection Polymorphism
.addEventListener() method, Function.prototype.bind()
.addTo() function, Lambdas
affordances (hypermedia), Affordances
agile development methods, Defining the App
Ajax technology, The JavaScript Revolution, Promises and Deferreds
alerts, logging, Logging Service Alerts
Alman, Ben, Immediately Invoked Function Expressions
Amazon Simple Queue Service (SQS), Queues and stacks
AMD (asynchronous module definition)
about, Asynchronous Module DefinitionAsynchronous Module Definition
exporting, Jiron
loader plug-ins, Plug-InsPlug-Ins
Amundsen, Mike, Affordances
Angular library, Model View Controller/MV*
anonymous functions
about, Function DefinitionNamed Function Expressions
self-invoked, Immediately Invoked Function Expressions
AppDynamics tool, Profiling and Instrumentation
application development
bundling and deployment, Bundling and DeploymentBundling and Deployment
code quality, Code Quality
defining the app, Defining the AppFeature Implementation
feature implementation, Feature ImplementationFeature Implementation
args array, Function Polymorphism
arguments object, Function Polymorphism
arity (functions), Named Parameters
Armstrong, Joe, Classical Inheritance Is Obsolete
array literal notation, Fluent-Style JavaScript
Array.prototype.shift() method, Function Polymorphism
Array.prototype.slice() method, Function Polymorphism
Array.sort() method, Functional Programming
arrays
as collections, Generics and Collection Polymorphism
as objects, Objects
The Art of Agile Development (Shore), Defining the App
ASI (automatic semicolon insertion), Use Semicolons
aspect-oriented programming, Client-Side Concerns
asynchronous module definition (AMD)
about, Asynchronous Module DefinitionAsynchronous Module Definition
exporting, Jiron
loader plug-ins, Plug-InsPlug-Ins
asynchronous operations
about, Asynchronous Operations
AMD support, Asynchronous Module DefinitionPlug-Ins
callback functions, Callbacks
promises and deferreds, Promises and DeferredsPromises and Deferreds
stateless functions and, Stateless Functions (aka Pure Functions)
asyncTest() function, Closures
Atwood's Law, The JavaScript Revolution
audit trails, logging, Auditing
Aura module management, Module Management
authentication
about, Authentication
Credential library, CredentialCredential
delegated, Delegated authenticationDelegated authentication
federated, Federated and Delegated AuthenticationWebID
multifactor, Multifactor AuthenticationInherence factor
passwords and, PasswordsStolen passwords
authorization
about, Authorization
applications and, Authorizing Applications
OAuth 2.0 standard, OAuth 2.0
Authy (authentication product), Possession factor
automatic semicolon insertion (ASI), Use Semicolons

B

Backbone.js library
about, Client-Side Concerns, Model View Controller/MV*
application presentation, Presentation and DOM Manipulation
Collection constructor, Model View Controller/MV*
event aggregators and, Event aggregators, Model View Controller/MV*
event emitters and, Event emitters, Events by example
.extend() method, Model View Controller/MV*
Model constructor, Events by example, Model View Controller/MV*
Router constructor, Model View Controller/MV*
template support, TemplatesTemplates
View constructor, Model View Controller/MV*, Presentation and DOM Manipulation
behavior delegation, Method dispatch
best practices reference
about, Best Practices Quick Reference
bracket placement, Bracket Placement: Right Side
constants, Avoid Constant AbuseUse Functional Iterators When Possible
eval() function, Don't Use eval()
functions, Use One var Statement per Function, Use Functional Iterators When PossibleUse Functional Iterators When Possible
if statement, Be Careful with if StatementsBe Careful with if Statements
indentation, Indentation: Be Consistent
name collisions, Avoid Name Collisions
semicolons, Use Semicolons
side effects, Avoid Side EffectsDon't Use switch
switch statement, Don't Use switchDon't Use switch
var keyword, Always Use var
block scope, Function Scope
Bootstrap framework, Defining the App
botnets, Passwords, Brute force
bracket placement (best practice), Bracket Placement: Right Side
Braithwaite, Reginald, Conclusion
Browserify module
about, Bundling and Deployment, Bundling and Deployment
AMD and, Plug-Ins, Jiron
template support, Templates
browsers
event emitters and, Model View Controller/MV*
federated authentication, Mozilla Persona
named function expressions, Named Function Expressions
RESTful APIs and, Use common conventions
Web Components and, Web ComponentsWeb Components
brute force attacks, Brute forceBrute force
Building Hypermedia APIs with HTML5 and Node (Amundsen), Affordances
Bunyan logger, Logging Requests
business analytics, Business AnalyticsViral Factor

C

callback functions
about, Callbacks
lambdas and, Lambdas
promises and, Promises and Deferreds
CDN (Content Deliver Network), Infrastructure
churn rate KPI, Business Analytics
circular references, JSON: Data Storage and Communication
class keyword, Prototypal Inheritance with Stamps
CLDR (Common Locale Data Repository), Internationalization
client-side operations
AMD support, Asynchronous Module DefinitionPlug-Ins
application presentation, Presentation and DOM ManipulationWeb Components
building code, Building Client-Side Code with CommonJS, npm, Grunt, and BrowserifyBundling and Deployment
DOM manipulation, Presentation and DOM ManipulationWeb Components
handling events, EventsEvents by example
logging events, Logging Requests, Logging Client-Side Events
module management, Module ManagementRegistration, loading, and rendering
MVC architecture, Model View Controller/MV*Model View Controller/MV*
separation of concerns, Client-Side ConcernsWeb Components
client/server communication
code reusability in, Reusability
JSON and, Syntax, JSON: Data Storage and Communication
RESTful web services and, RESTful JSON Web ServicesRESTful JSON Web Services
separation of concerns, Separation of ConcernsConclusion
cloning prototypes, Prototype CloningPrototype Cloning
closures (function scope)
about, ClosuresClosures, Fluent-Style JavaScript
lambdas and, Lambdas
partial application and, Partial Application and Currying
CLTV (Customer Lifetime Value), Business Analytics
CMS (Content Management System), Infrastructure
Coders at Work (Siebel), Classical Inheritance Is Obsolete
collection polymorphism, Generics and Collection Polymorphism
Common Locale Data Repository (CLDR), Internationalization
CommonJS project
about, The Module Pattern
asynchronous modules and, Asynchronous Module Definition
module implementations, Node-Style Modules
Promises/A design, Promises and Deferreds
consistency (design principle)
about, Usable, Consistency
common conventions, Use common conventionsResourceful routing
resourceful routing, Resourceful routingResourceful routing
console object
log() method, Hoisting
timeEnd() method, Debugging
trace() method, Debugging
constant time hash equality check, Variable time equality
constants (best practice), Avoid Constant AbuseUse Functional Iterators When Possible
constructor functions, Fluent-Style JavaScript, Object CreationObject Creation
Content Deliver Network (CDN), Infrastructure
Content Management System (CMS), Infrastructure
continuous deployment, Feature Toggle
controller (MVC), Model View Controller/MV*
controls, defined, Separation of Concerns
conversion goals, logging, Logging Goals
CouchDB data stores, NoSQL Data Stores
Credential library, CredentialCredential
Crockford, Douglas, Who This Book Is Not For, JSON: Data Storage and Communication, The Module Pattern, JavaScript Style Guide, Best Practices Quick Reference
CRUD acronym, RESTful JSON Web Services, Resourceful routing
crypto module
pbkdf2() function, Brute force
randomBytes() function, Password salts
CSS (Cascading Style Sheets)
Bootstrap framework and, Defining the App
shadow DOM and, Web Components
template support, Templates
usage tips, Bundling and Deployment
css! plug-in, Plug-Ins
Curl.js, Plug-Ins
currying process, Partial Application and Currying
customer acquisition cost KPI, Business Analytics
Customer Lifetime Value (CLTV), Business Analytics

D

data storage, JSON: Data Storage and CommunicationNoSQL Data Stores
data structures, as objects, Objects
debug messages, logging, DebuggingDebugging
deciphering data, Deciphering Data
default activation phase (feature-toggle), Default Activation
.Deferred() method, Promises and Deferreds
deferreds (objects), Promises and Deferreds
delegate prototypes, Delegate PrototypesDelegate Prototypes, Prototypal Inheritance with Stamps
delegated authentication, Delegated authenticationDelegated authentication
DELETE verb (HTTP), RESTful JSON Web Services, Resourceful routing
Design Patterns (Gamma et al.), Who This Book Is Not For
Design Patterns (Gang of Four), Classical Inheritance Is ObsoleteClassical Inheritance Is Obsolete, Interfaces
design principles
development guidelines, Functions
methods, Method Design
modules, Principles of Modularity
object-oriented design, Classical Inheritance Is Obsolete
RESTful APIs, Building RESTful APIsConclusion
development phase (feature-toggle), Development
Do One Thing (DOT), Functions
Dojo framework, Client-Side Concerns
DOM (Document Object Model)
client-side manipulation, Presentation and DOM ManipulationWeb Components
event delegation, Event delegationEvent delegation
event emitters, Event emitters, Model View Controller/MV*
shadow DOM, Web ComponentsWeb Components
template support, TemplatesTemplates
domain-specific language (DSL), Method Chaining and Fluent APIs
Don't Repeat Yourself (DRY), Functions
DOT (Do One Thing), Functions
dot notation, Method ContextMethod Context
DRY (Don't Repeat Yourself), Functions
DSL (domain-specific language), Method Chaining and Fluent APIs
ducktyping, Be Careful with if Statements
dynamic dispatch, Method dispatch
Dynamic HTML (Goodman), Events
dynamic object extension, Fluent-Style JavaScriptFluent-Style JavaScript

E

ECMAScript specifications
ES6 modules and, ES6 Modules
functional enumerators, Lambdas
encapsulation
modules and, Modules
private data and, Object Creation, FactoriesFactories, Prototypal Inheritance with Stamps
environment variables, Configuration
equal() function, Closures, QUnit Primer
error handling
Express framework, MiddlewareLet it crash, Logging Errors
logging errors, Logging ErrorsSample Log Output
RESTful APIs, Use common conventions
eval() function, Function Definition, Don't Use eval()
events
about, Events
.bind() method and, Function.prototype.bind()
callback functions and, Callbacks
choosing event models, Choosing the right event model
event aggregators, Event aggregators, Model View Controller/MV*, Event delegation
event delegation, Event delegationEvent delegation
event emitters, Event emitters, Events by example
by example, Events by exampleEvents by example
JavaScript advantages, Events
logging, Logging Requests, Logging Client-Side Events
message queues, Queues and stacks
specifying event handlers, View events
.every() method, Generics and Collection Polymorphism
export keyword, ES6 Modules
Express framework
about, Installing Node and Express, Express
creating app instance, Create your app
error handling, Middleware, Logging Errors
installing, Installing Node and Express
middleware support, MiddlewareLet it crash
routing considerations, Routing
templates support, Templates
express-error-handler module, Use common conventions
.extend() method
Backbone support, Model View Controller/MV*
jQuery support, Named Parameters, Prototype Cloning, Interfaces
Underscore support, Named Parameters, Prototype Cloning
Extensible Markup Language (XML), NoSQL Data Stores

F

Facebook
authentication and, Delegated authentication
authorization and, Authorizing Applications
OAuth 2.0 support, OAuth 2.0
facial recognition, Inherence factor
factories
about, Fluent-Style JavaScript, FactoriesPrototypal Inheritance with Stamps
defining, Interfaces
false positives in testing, Defining the App
feature toggle systems, Feature Toggle
features
grouping together, Feature Groups
implementing, Feature ImplementationFeature Implementation, ImplementationImplementation
lifespan of, Lifespan of a FeatureFull Integration
organizing, Organizing FeaturesFeature Groups
scale of, Scale of a Feature
federated authentication, Federated and Delegated AuthenticationWebID
Fielding, Roy T., AffordancesHATEOAS
fingerprint scanners, Inherence factor
first-class functions, First-Class Functions, Lambdas
Flannagan, David, Who This Book Is Not For
Flatiron HTTP Module, Node-Style Modules
fluent APIs, Method Chaining and Fluent APIsMethod Chaining and Fluent APIs, Fluent-Style JavaScript
fluent style JavaScript, Fluent-Style JavaScriptFluent-Style JavaScript
flyweight pattern, The Flyweight PatternThe Flyweight Pattern
focus (design principle), UsableFocus
.forEach() function, Lambdas, Functional Programming
Fowler, Martin, Choosing the right event model
full integration phase (feature-toggle), Full Integration
function declarations
about, Function DefinitionFunction Definition
hoisting and, Hoisting
named function expressions and, Named Function Expressions
function decorators, Lambdas
function definition
about, Function DefinitionFunction Definition
function expressions, Named Function ExpressionsLambdas, Immediately Invoked Function ExpressionsMethod Context
lambdas, LambdasLambdas
method context, Method ContextFunction.prototype.bind()
function expressions
about, Function Definition
hoisting and, Hoisting
IIFE, Immediately Invoked Function ExpressionsMethod Context
named, Named Function ExpressionsLambdas
function scope
about, Function Scope
closures, Lambdas, ClosuresClosures, Partial Application and Currying, Fluent-Style JavaScript
encapsulating private data, Prototypal Inheritance with Stamps
hoisting, HoistingClosures
Function.prototype.bind() method, Function.prototype.bind(), Partial Application and Currying
Function.prototype.call() method, Method Context
functional enumerators, Lambdas
functional programming
about, First-Class Functions, Functional ProgrammingFunctional Programming, Conclusion
currying process, Partial Application and Currying
generic programming and, Generics and Collection Polymorphism
partial application, Partial Application and Currying
stateless functions, Minimize Side Effects, Stateless Functions (aka Pure Functions)Stateless Functions (aka Pure Functions)
functional tests, Defining the App
functions
asynchronous operations, Asynchronous OperationsPromises and Deferreds
best practices, Use One var Statement per Function, Use Functional Iterators When PossibleUse Functional Iterators When Possible
constructor, Fluent-Style JavaScript, Object CreationObject Creation
development guidelines, Functions
function definition, Function DefinitionFunction.prototype.bind()
function scope, Function ScopeClosures
invoking, Method Context
JavaScript advantages, First-Class Functions
JSON and, JSON: Data Storage and Communication
lambdas, LambdasLambdas, Fluent-Style JavaScript
method design, Method DesignMethod Chaining and Fluent APIs
minimizing side effects, Minimize Side EffectsMinimize Side Effects
as objects, Objects
polymorphic, Function PolymorphismMethod dispatch
sorting parameters, Function Polymorphism

H

H-Factors, Affordances
HAProxy module, Optimizing for Speed
HATEOAS acronym, HATEOASHATEOAS
Helm, Richard, Who This Book Is Not For
Hickson, Ian, Web Components
higher order functions, First-Class Functions, Lambdas
hoisting (function scope), HoistingClosures
HTML
as API media type, HTML as an API Media Type
Geolocation API, Inherence factor
HTTP verbs
logging requests, Logging Requests
RESTful APIs and, RESTful JSON Web ServicesRESTful JSON Web Services, Use common conventions, Resourceful routing
hypermedia
about, Self-Describing: Hypermedia
affordances and, Affordances
HATEOAS acronym and, HATEOASHATEOAS
HTML and, HTML as an API Media Type
Jade template engine, JadeJiron
Jiron type, JironJiron

I

i18next library, Internationalization
IcoMoon app, Bundling and Deployment
if statement, Be Careful with if StatementsBe Careful with if Statements
IIFE (immediately invoked function expression), Immediately Invoked Function ExpressionsMethod Context, The Module Pattern
immediately invoked function expression (IIFE), Immediately Invoked Function ExpressionsMethod Context, The Module Pattern
import keyword, ES6 Modules
indentation (best practice), Indentation: Be Consistent
infrastructure diagram, InfrastructureInfrastructure
inherence factor (authentication), Inherence factor
inheritance
classical, Objects, Classical Inheritance Is ObsoleteClassical Inheritance Is Obsolete
problems caused by, Classical Inheritance Is Obsolete
prototypal, Objects, Fluent-Style JavaScript, Prototypal Inheritance with StampsPrototypal Inheritance with Stamps, Web Components
interfaces in modular design, InterfacesInterfaces
internalization process, InternationalizationConclusion

J

Jade template engine, JadeJiron
Januska, Antonin, Defining the App
JavaScript
about, The JavaScript Revolution
advantages of, Advantages of JavaScriptThe Net Result
anatomy of modern apps, Anatomy of a Typical Modern JavaScript AppRESTful JSON Web Services
best practices reference, Best Practices Quick ReferenceDon't Use eval()
code quality, Code Quality
example tests, Example Tests
fluent style, Fluent-Style JavaScriptFluent-Style JavaScript
JavaScript Object Notation (JSON)
about, Objects
data storage and communication, JSON: Data Storage and CommunicationJSON: Data Storage and Communication
Jiron comparison, Jiron
RESTful web services and, RESTful JSON Web ServicesRESTful JSON Web Services
JavaScript: The Definitive Guide (Flannagan), Who This Book Is Not For
JavaScript: The Good Parts (Crockford), Who This Book Is Not For, JavaScript Style Guide
Jiron hypermedia type, JironJiron
Johnson, Ralph, Who This Book Is Not For
jQuery
.on() method, Callbacks
AMD support, Asynchronous Module Definition
collection polymorphism and, Generics and Collection Polymorphism
dynamic dispatch and, Method dispatch
.extend() method, Named Parameters, Prototype Cloning, Interfaces
fluent APIs, Method Chaining and Fluent APIsMethod Chaining and Fluent APIs
fluent style JavaScript and, Fluent-Style JavaScript
Globalize plug-in, Internationalization
IIFE, Immediately Invoked Function Expressions
microlibraries and, Client-Side Concerns
.on() method, Feature Implementation, View events, Event delegation
promises, Promises and DeferredsPromises and Deferreds
JSLint, Best Practices Quick Reference
JSON (JavaScript Object Notation)
about, Objects
data storage and communication, JSON: Data Storage and CommunicationJSON: Data Storage and Communication
Jiron comparison, Jiron
RESTful web services and, RESTful JSON Web ServicesRESTful JSON Web Services
Jsonary client, Use common conventions

K

K-factor (viral factor), Viral Factor
Keep it Simple Stupid (KISS), Functions
Kestrel message queue, Queues and stacks
Key Performance Indicators (KPIs), Business Analytics
key stretching, Brute force
key/value pairs, as objects, Objects
KISS (Keep it Simple Stupid), Functions
KISSmetrics tool, Deciphering Data
knowledge factor (authentication), Knowledge factor
KPIs (Key Performance Indicators), Business Analytics

L

lambdas, LambdasLambdas, Fluent-Style JavaScript
layers, defined, Separation of Concerns
Lee, Bruce, Classical Inheritance Is Obsolete, Fluent-Style JavaScript
Less is More guideline, Functions
let keyword, Function Scope
lifespan of features
about, Lifespan of a Feature
default activation phase, Default Activation
development phase, Development
full integration phase, Full Integration
production testing phase, Production Testing
rollout phase, Feature Rollout
staging phase, Staging
loader plug-ins, Plug-InsPlug-Ins
localization process, Internationalization
localStorage, Interfaces, Interfaces
logging
about, Logging
audit trails, Auditing
for business analytics, Business AnalyticsViral Factor
checklist considerations, Logging Checklist
client-side events, Logging Requests, Logging Client-Side Events
conversion goals, Logging Goals
debug messages, DebuggingDebugging
deciphering data, Deciphering Data
errors, Logging ErrorsSample Log Output
instrumenting code, Profiling and Instrumentation
profiling performance, Profiling and Instrumentation
sample output, Sample Log OutputSample Log Output
security breaches, Security
server operations, Server Operations
server requests, Logging RequestsLogging Requests
service alerts, Logging Service Alerts

M

MAC (mandatory access control), Authorization
mandatory access control (MAC), Authorization
Math.random() method, Generics and Collection Polymorphism
MDN (Mozilla Developer Network), Use Functional Iterators When Possible
message queues, Queues and stacks
method chaining, Method Chaining and Fluent APIs
method delegation, Function Polymorphism
method dispatch, Method dispatchMethod dispatch
method literals, Function Definition
methods
collection polymorphism, Generics and Collection PolymorphismGenerics and Collection Polymorphism
designing, Method Design
factory, Fluent-Style JavaScript, FactoriesPrototypal Inheritance with Stamps, Interfaces
fluent APIs, Method Chaining and Fluent APIsMethod Chaining and Fluent APIs
function polymorphism, Function PolymorphismMethod dispatch
generic programming, Generics and Collection PolymorphismGenerics and Collection Polymorphism
invoking, Method ContextFunction.prototype.bind()
named parameters, Named Parameters
privileged, Closures
Microjs.com website, Client-Side Concerns
microlibraries, Client-Side Concerns
Microsoft Globalize plug-in, Internationalization
middleware, MiddlewareLet it crash
Milk, Chris, Events
Miraglia, Eric, The Module Pattern
Mixpanel tool, Deciphering Data
mobile devices, authentication and, Possession factor
model (MVC), Model View Controller/MV*
Model View Controller (MVC), Model View Controller/MV*Model View Controller/MV*
Model View Presenter (MVP), Model View Controller/MV*
module pattern, The Module PatternThe Module Pattern
module() function, QUnit Primer
modules
about, Modules
AMD support, Asynchronous Module DefinitionPlug-Ins
building client-side code, Building Client-Side Code with CommonJS, npm, Grunt, and BrowserifyBundling and Deployment
design principles, Principles of Modularity
ES6, ES6 Modules
interfaces and, InterfacesInterfaces
managing, Module ManagementRegistration, loading, and rendering
module pattern, The Module PatternThe Module Pattern
node style, Node-Style ModulesNode-Style Modules
npm support, npmnpm
separation of concerns, Separation of Concerns
Moment.js library, Internationalization
MongoDB data stores, NoSQL Data Stores
Monthly Recurring Revenue (MRR), Business Analytics
Mozilla Developer Network (MDN), Use Functional Iterators When Possible
Mozilla Persona, Mozilla Persona
MRR (Monthly Recurring Revenue), Business Analytics
multifactor authentication
about, Multifactor Authentication
inherence factor, Inherence factor
knowledge factor, Knowledge factor
possession factor, Possession factor
MVC (Model View Controller), Model View Controller/MV*Model View Controller/MV*
MVP (Model View Presenter), Model View Controller/MV*

N

name collisions (best practice), Avoid Name Collisions
named function expressions, Named Function ExpressionsLambdas
named parameters (methods), Named Parameters
namespaces
best practices, Avoid Name Collisions
common mistakes, The Module Pattern
this keyword and, Method Context, Fluent-Style JavaScript
new keyword, Fluent-Style JavaScript, Delegate Prototypes
New Relic tool, Profiling and Instrumentation, Optimizing for Speed
Node environment
about, Getting Started with Node and ExpressGetting Started with Node and Express, Next steps
configuration considerations, Configuration
installing, Installing Node and Express
libraries supported, Node libraries
organizing files in, Organizing files in Node
node package manager (npm), npmnpm
Node Version Manager (nvm), Installing Node and Express
Node.js
performance advantages, Performance
random generators, Password salts
Stampit and, Conclusion
Nodetime tool, Profiling and Instrumentation
NoSQL data stores, Infrastructure, NoSQL Data Stores
npm (node package manager), npmnpm
nvm (Node Version Manager), Installing Node and Express

O

OAuth 2.0 standard, OAuth 2.0
Object constructor
assign() method, Prototype Cloning
create() method, Delegate PrototypesDelegate Prototypes, Prototypal Inheritance with Stamps, Prototypal Inheritance with Stamps, Interfaces
prototype property, Delegate PrototypesDelegate Prototypes
object literal notation
about, Fluent-Style JavaScript
JSON and, Objects, Syntax, JSON: Data Storage and Communication
object creation example, Object Creation
object-oriented design
foundational principles, Classical Inheritance Is Obsolete
gorilla/banana problem, Classical Inheritance Is Obsolete
on inheritance, Classical Inheritance Is ObsoleteClassical Inheritance Is Obsolete
objects
about, Objects
as collections, Generics and Collection Polymorphism
creating, Object CreationObject Creation, Prototypal Inheritance with StampsPrototypal Inheritance with Stamps
factory methods, Fluent-Style JavaScript, FactoriesPrototypal Inheritance with Stamps
fluent APIs and, Method Chaining and Fluent APIs
fluent style JavaScript and, Fluent-Style JavaScriptFluent-Style JavaScript
JavaScript advantages, Objects
promises and deferreds, Promises and DeferredsPromises and Deferreds
prototypal inheritance, Objects, Fluent-Style JavaScript, Prototypal Inheritance with StampsPrototypal Inheritance with Stamps
prototypes, Fluent-Style JavaScriptThe Flyweight Pattern
ok() function, QUnit Primer
One Hour Translation service, Conclusion
one-time passwords (OTPs), Possession factor
Open Closed Principle, Principles of Modularity
OpenID, Federated and Delegated Authentication, OAuth 2.0
optimizing for speed (design principle), Optimizing for Speed
Osmani, Addy, Module Management
OTPs (one-time passwords), Possession factor

P

parameters
named, Named Parameters
sorting, Function Polymorphism
parametric polymorphism, Generics and Collection Polymorphism
parentheses (), Method Context
partial application, Partial Application and Currying
password salts, Password salts
passwords
about, Passwords
brute force attacks, Brute forceBrute force
password salts, Password salts
rainbow tables, Rainbow tables
stolen, Stolen passwords
variable time equality, Variable time equality
vulnerability of, Passwords
performance
JavaScript advantages, Performance
profiling, Profiling and Instrumentation
Persona (Mozilla), Mozilla Persona
plug-ins (loader), Plug-InsPlug-Ins
Polymer website, Web Components
polymorphism
ad-hoc, Generics and Collection Polymorphism
collection, Generics and Collection PolymorphismGenerics and Collection Polymorphism
function, Function PolymorphismMethod dispatch
parametric, Generics and Collection Polymorphism
possession factor (authentication), Possession factor
POST verb (HTTP), RESTful JSON Web ServicesRESTful JSON Web Services, Logging Requests, Use common conventions, Resourceful routing
primitive types, Objects
private data, encapsulation and, Object Creation, FactoriesFactories, Prototypal Inheritance with Stamps
privileged methods, Closures
production testing phase (feature-toggle), Production Testing
promises (objects), Promises and DeferredsPromises and Deferreds
prototypal inheritance
about, Objects, Fluent-Style JavaScript
custom tags and, Web Components
with stamps, Prototypal Inheritance with StampsPrototypal Inheritance with Stamps
prototype chain, Objects, Delegate Prototypes
Prototype library, Fluent-Style JavaScript
prototypes
about, Fluent-Style JavaScriptPrototypes
cloning, Prototype CloningPrototype Cloning
delegate, Delegate PrototypesDelegate Prototypes, Prototypal Inheritance with Stamps
flyweight pattern, The Flyweight PatternThe Flyweight Pattern
publish_actions permission, Authorizing Applications
pure functions, Minimize Side Effects, Stateless Functions (aka Pure Functions)Stateless Functions (aka Pure Functions)
PUT verb (HTTP), RESTful JSON Web ServicesRESTful JSON Web Services, Use common conventions, Resourceful routing

Q

QUnit framework
about, Example Tests
asyncTest() function, Closures
client-side code and, Defining the AppDefining the App
equal() function, Closures, QUnit Primer
module() function, QUnit Primer
ok() function, QUnit Primer
start() function, Closures
stop() function, Closures
task output example, Bundling and Deployment
test() function, QUnit Primer

R

rainbow tables, Rainbow tables
random generators, Password salts
RBACs (role-based access controls), Authorization
RDBMS (Relational Database Management System), Infrastructure, NoSQL Data Stores
.reject() method, Promises and Deferreds
Relational Database Management System (RDBMS), Infrastructure, NoSQL Data Stores
remote procedure calls (RPCs), Use common conventions
Representational State Transfer (REST), RESTful JSON Web ServicesRESTful JSON Web Services
representations, Minimize Side Effects
request serializers, Logging RequestsLogging Requests
require() function, Node-Style Modules
Require.js, Plug-Ins
.resolve() method, Promises and Deferreds
resources, defined, Resourceful routing
responsive (design principle), Responsive APIsResponsive APIs
REST (Representational State Transfer), RESTful JSON Web ServicesRESTful JSON Web Services
RESTful APIs
building, Building RESTful APIsBuilding RESTful APIs
HTTP verbs and, RESTful JSON Web Services, Use common conventions, Resourceful routing
optimizing for speed, Optimizing for Speed
responsive, Responsive APIsResponsive APIs
self-describing, Self-Describing: HypermediaJiron
usable, UsableResourceful routing
retina scanners, Inherence factor
reusability in code development, Reusability
Riot.js library, Model View Controller/MV*
role-based access controls (RBACs), Authorization
rollout phase (feature-toggle), Feature Rollout
routing
Express framework support, Routing
resourceful, Resourceful routingResourceful routing
RPCs (remote procedure calls), Use common conventions

S

SaaS (Software as a Service), Business Analytics
salting passwords, Password salts
Satrom, Brandon, Building RESTful APIs
scope (function), Function Scope (see function scope)
security
authentication, AuthenticationDelegated authentication
authorization, AuthorizationOAuth 2.0
logging breaches, Security
recommendations, Conclusion
self-describing (design principle)
about, Self-Describing: Hypermedia
affordances and, Affordances
HATEOAS acronym and, HATEOASHATEOAS
HTML and, HTML as an API Media Type
Jade template engine, JadeJiron
Jiron type, JironJiron
self-invoked anonymous functions, Immediately Invoked Function Expressions
semantic versioning, npm
semicolons (best practice), Use Semicolons
separation of concerns
about, Separation of Concerns
application presentation, Presentation and DOM ManipulationWeb Components
best practices, Don't Use switch
client-side concerns, Client-Side ConcernsWeb Components
DOM manipulation, Presentation and DOM ManipulationWeb Components
events, EventsEvents by example
module management, Module ManagementRegistration, loading, and rendering
MVC architecture, Model View Controller/MV*Model View Controller/MV*
server-side concerns, Server-Side ConcernsNext steps
serializers, request, Logging RequestsLogging Requests
server-side operations
logging server operations, Server Operations
logging server requests, Logging RequestsLogging Requests
node style modules, Node-Style ModulesNode-Style Modules
separation of concerns, Server-Side Concerns
service alerts, logging, Logging Service Alerts
shadow DOM, Web ComponentsWeb Components
shims, defined, Use Functional Iterators When Possible
Shore, James, Defining the App
side effects
best practices, Avoid Side EffectsDon't Use switch
minimizing, Minimize Side EffectsMinimize Side Effects
Siebel, Peter, Classical Inheritance Is Obsolete
Simple Queue Service (SQS), Queues and stacks
single sign on (SSO), Federated and Delegated Authentication
snapshots of virtual machines, Security
Snook, Jonathan, Bundling and Deployment
Software as a Service (SaaS), Business Analytics
sorting parameters, Function Polymorphism
speakeasy module, Possession factor
Splunk tool, Deciphering Data
SQL (Structured Query Language), Infrastructure
SQS (Simple Queue Service), Queues and stacks
square bracket notation, Method Context, Function Polymorphism
SSO (single sign on), Federated and Delegated Authentication
stack trace, Logging Errors
staging phase (feature-toggle), Staging
Stampit library
about, Prototypal Inheritance with StampsConclusion
.compose() method, Prototypal Inheritance with Stamps, Interfaces
.enclose() method, Interfaces
.state() method, Interfaces
defining factory, Interfaces
.enclose() method, Prototypal Inheritance with Stamps
.methods() method, Prototypal Inheritance with Stamps, Interfaces
.state() method, Prototypal Inheritance with Stamps
stamps, Prototypal Inheritance with StampsPrototypal Inheritance with Stamps
start() function, Closures
stateless functions, Minimize Side Effects, Stateless Functions (aka Pure Functions)Stateless Functions (aka Pure Functions)
stolen passwords, Stolen passwords
stop() function, Closures
storage, data, JSON: Data Storage and CommunicationNoSQL Data Stores
Structured Query Language (SQL), Infrastructure
subclassing, Classical Inheritance Is Obsolete, Fluent-Style JavaScript, Model View Controller/MV*
switch statement, Don't Use switchDon't Use switch
syntax (JavaScript), Syntax

T

The Tao of Jeet Kun Do (Lee), Fluent-Style JavaScript
TDD (test-driven development), Defining the App
templates
about, TemplatesTemplates
Express framework support, Templates
Jade template engine, JadeJiron
test() function, QUnit Primer
test-driven development (TDD), Defining the App
testing
eliminating false positives, Defining the App
features, Production Testing
functional tests, Defining the App
JavaScript example tests, Example Tests
Tethras service, Conclusion
text! plug-in, Plug-Ins
this keyword, Method Context, Fluent-Style JavaScript
tiers, defined, Separation of Concerns
timing attacks, Variable time equality
Tinyapp module management, Module ManagementRegistration, loading, and rendering, Events by exampleEvents by example
TodoMVC project, Client-Side Concerns, Model View Controller/MV*
Twitter
authentication and, Delegated authentication
Bootstrap framework, Defining the App

U

UMD (universal module definition), Asynchronous Module Definition
Underscore library
about, First-Class Functions
collection polymorphism and, Generics and Collection Polymorphism
event aggregators and, Event aggregators
.extend() method, Named Parameters, Prototype Cloning
template support, TemplatesTemplates
Unicode CLDR, Internationalization
Uniform Resource Indicator (URI), RESTful JSON Web Services
universal module definition (UMD), Asynchronous Module Definition
URI (Uniform Resource Indicator), RESTful JSON Web Services
usability (design principle)
consistency, Usable, ConsistencyResourceful routing
focus, UsableFocus
user stories, Defining the App

V

van Straaten, Anton, Conclusion
var keyword, Function Scope, Always Use var
Venners, Bill, Interfaces
view (MVC), Model View Controller/MV*, Presentation and DOM Manipulation
viral factor (K-factor), Viral Factor
virtual machines, snapshots of, Security
Virtual Private Networks (VPNs), Infrastructure
Vlissides. John, Who This Book Is Not For
VPNs (Virtual Private Networks), Infrastructure

W

Web Components, Web ComponentsWeb Components
WebID, WebID
widgets, defined, Separation of Concerns
The Wilderness Downtown (film), Events

X

X-HTTP-Method-Override header, Use common conventions
XML (Extensible Markup Language), NoSQL Data Stores
XMLHttpRequest object, The JavaScript Revolution
Xstyle framework, Plug-Ins

Y

YUI blog, The Module Pattern

Z

Zakas, Nicholas, Module Management