Sei sulla pagina 1di 5

Patterns and Frameworks for Large Scale

JavaScript Applications
OVERVIEW
This workshop teaches the participants how to take advantage of some of the advanced features
offered by JavaScript for building better maintainable applications large scale applications. It also
introduces some of the frameworks that can assist in this process.
OBJECTIVES
At the end of this training course, the participants will:
Understand and appreciate the dynamic typed nature of JavaScript language
Be able to understand the exploit some of the functional programming techniques in
JavaScript
Understand and resolve scope issues in JavaScript
Techniques for modularizing JavaScript code
Know how to modularize and load JavaScript files using Require.js
Be aware of some of the quirks in the JS language
Be able to use Handlebar templates for UI templating
Use jQuery for DOM Manipulation
Know the techniques for organizing UI code using Backbone.js
Know the techniques for organizing UI code using Angular.js
MVVM using Knockout.js
SUGGESTED AUDIENCE
Web developer who wants to build best-of-breed web UIs with the simplicity and elegance of
JavaScript.

DURATION

3 Days
PARTICIPANT PREREQUISITES
Must Have
Web development experience with HTML, CSS, JavaScript and jQuery

Good To Have
Exposure to any server technology (J2EE, .NET, Ruby etc)

INFRASTRUCTURE REQUIREMENTS
A good editor for JavaScript (Notepad++ etc)
Node
Chrome
Internet Connection (Mandatory)
COURSE CONTENTS
JAVASCRIPT
Expressive JavaScript
o The Flexibility of JavaScript
o JavaScript as a Loosely Typed Language
o Functions as First-Class Objects
o Object Mutability
Functions In Depth
o Function Objects
o Function Literal
o Function Invocation Patterns
o Augmenting Types
o Recursion & Closures
o Functions as Callbacks
o Function Currying & Memorization
Closures In Depth
o How Closures Work
o Private Variables, Callbacks and Timers
o Binding Function Contexts
o Overriding Function Behavior
Object Orientation With Prototypes
o Object Instantiation
o Constructors
o Inheritance and Prototype Chain
o Extending Object
o Extending Number
o Instantiation Issues
o Writing class-like code
JavaScript Gotchas
o Global Variables
o Scope
o Semicolon Insertions
o Type Coercion
Using Templates
o Avoid string concatenation for dynamic generation of UI
o Template syntax
o Exploring Handlebar.js
o Binding data to templates
o Using pre-compiled templates
Modular JavaScript
o Techniques for modularizing JavaScirpt code
o Using namespaces for modularizing JavaScript code

Require.JS
Introduction to AMD
Defining Modules using Require.js
Injecting dependencies
Configuring base urls
Loading and using non-AMD compatible modules
Loading templates using plugins

Knockout.JS
MVVM using Knockout.js
o Overview of MVVM pattern
o Observables overview
o Creating ViewModels
o Bindings Overview
o Controlling Text and Appearance
o Control Flow
o Working with Forms
o Using Templates

BACKBONE.JS
Introduction to Backbone.js
o Need to organize UI code
o Backbone Fundamentals
o View
o Model
o Collection
o Router
Model Basics
o Implement a simple Model
o Modify Model attributes
o Use a Model in the Console
Common Model Methods
o get(key)
o set({key:value})
o isNew()
o toJSON()
View Basics
o Implement a simple View
o Understanding template rendering
o Using View in the console
o Using HandleBar View Engine
Collections Basics
o Implement a collection
o Use underscore methods to manipulate a collection
o Understanding Collection Events
Combining Models Views and Collections
o Extend an existing View
o Writing a template
o Render Models in a Collection
o Adding Content to the DOM
o Render on the Collections reset event
Routes
o Constructor Route
o Router Redirection
Backbone Plugins
o LocalStorage - Sync Plugin

Angular.js
Introduction to Angular.js
o How Angular.js is opinionated
o Difference between Backbone.js and Angular.js
Angular.js Building Blocks
o Controller Component
o Model Component
o View Component
o Directives
o Filters
o Services
o Providers
o Factory
o DI in Angular.js
Anatomy of an Angular.js Applications
o Creating Boundaries using ng-app
o Model View Controller
o Templates and Data Binding
o Repeating elements in templates
o Using Expressions, CSS Classes and Styles
o Using Controllers for UI responsibility separation
o Responding to model changes
Data Binding in Angular.js
O Understanding Built-in Directives
O Scope resolution
O One way and Two way data binding
Using Filters
O Filters Overview
O Understanding Filter Expressions
O Building custom Filters
Services & Factories
O Services Overview
O Modularity using Services
O Injecting Services
O Creating Custom Factories and Providers
Communicating with Servers
O Communicating over $http
O Using RESTful Resources

MISCELLENEOUS
JavaScript Development Workflow
o Using Grunt.js
o Overview of Yeoman
o Clientside dependency management using Bower.js

Potrebbero piacerti anche