background preloader

Patterns For Large-Scale JavaScript Application Architecture

Patterns For Large-Scale JavaScript Application Architecture
Today we're going to discuss an effective set of patterns for large-scale JavaScript application architecture. The material is based on my talk of the same name, last presented at LondonJS and inspired by previous work by Nicholas Zakas. Who am I and why am I writing about this topic? I'm currently a JavaScript and UI developer at AOL helping to plan and write the front-end architecture to our next generation of client-facing applications. As these applications are both complex and often require an architecture that is scalable and highly-reusable, it's one of my responsibilities to ensure the patterns used to implement such applications are as sustainable as possible. I also consider myself something of a design pattern enthusiast (although there are far more knowledgeable experts on this topic than I). Can you summarize this article in 140 characters? In the event of you being short for time, here's the tweet-sized summary of this article: What exactly is a 'large' JavaScript application?

Initializr - Start an HTML5 Boilerplate project in 15 seconds! Former Apple HTML5 Leader Builds His Own Apps Platform His brainchild is SproutCore, a JavaScript library whose goal is to accelerate HTML5 apps on multiple platforms, including tablets, so their execution speed approaches that of native apps. Charles Jolley began work on SproutCore at Apple, and was a key architect for Apple's vision of HTML5: a standards-driven effort that could yet be maneuvered to showcase Apple's strengths. But one of that effort's first culminations was MobileMe, Apple's first attempt at a data-syncing service for Mac and iPod/iPhone customers. That effort became synonymous with "disaster," one which then-CEO Steve Jobs promised to rebuild. Not very good with failures, Apple let MobileMe languish, and its HTML5 message was dialed down. The list of people who have left Apple to do something successful is very, very short - after Steve Jobs himself, the names aren't very recognizable. The Apple platform for apps delivery is rich and compelling, Jolley points out.

Five Tools for Managing Complexity in Large-Scale JavaScript Projects - Signals Blog JavaScript lacks many of the tools and culture that define a clear 'right way' to approach large-scale projects. Yet it's still possible to build and maintain complex software with JavaScript. But how? For the last year, I've been involved in the development of a chemical structure editor written in JavaScript. ChemWriter is an interactive, graphically-oriented component that combines many characteristics of a drawing program with chemistry domain knowledge. In the course of developing ChemWriter, we've experimented with many tools and approaches for managing complexity as the capabilities of the software increased. Google Closure. ChemWriter is a component consisting of over 14,000 lines of JavaScript code spread over 112 source files and 14 packages, and is backed by over 1,600 automated tests.

A re-introduction to JavaScript Why a re-introduction? Because JavaScript is notorious for being the world's most misunderstood programming language. It is often derided as being a toy, but beneath its layer of deceptive simplicity, powerful language features await. It's useful to start with an overview of the language's history. Several months later, Microsoft released JScript with Internet Explorer 3. Because it is more familiar, we will refer to ECMAScript as "JavaScript" from this point on. Unlike most programming languages, the JavaScript language has no concept of input or output. Overview JavaScript is a multi-paradigm, dynamic language with types and operators, standard built-in objects, and methods. Let's start off by looking at the building blocks of any language: the types. ... oh, and undefined and null, which are ... slightly odd. And there are some built-in Error types as well. Numbers Numbers in JavaScript are "double-precision 64-bit format IEEE 754 values", according to the spec. parseInt('11', 2); And:

cryptico.js - An easy-to-use strong encryption system utilizing RSA and AES for javascript. What is the current state of the art in HTML canvas JavaScript libraries and frameworks Backbone patterns Building apps with Backbone.js Here, I try to document the good practices that our team has learned along the way building Backbone applications. This document assumes that you already have some knowledge of Backbone.js, jQuery, and of course, JavaScript itself. Table of contents Thanks josephg/ShareJS - GitHub

Related: