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?

http://addyosmani.com/largescalejavascript/

Related:  Development

Open source test management tools Please fill in our 10th anniversary survey! Opensourcetesting.org is 10 years old! We have changed a lot over that time, and no doubt you have too. We would love to get to know the 'new you' a little bit better, find out what you think of our website and what else we could do for you. Please follow this link and fill in this quick survey. Thankyou so much for visiting our site, and for your time on the survey. The 30 CSS Selectors you Must Memorize So you learned the base id, class, and descendant selectors—and then called it a day? If so, you're missing out on an enormous level of flexibility. While many of the selectors mentioned in this article are part of the CSS3 spec, and are, consequently, only available in modern browsers, you owe it to yourself to commit these to memory. And by the way, if you're having trouble with your CSS and want a pro to look over it and fix any errors, you can find some qualified freelancers on Envato Studio. Let's knock the obvious ones out, for the beginners, before we move onto the more advanced selectors. The star symbol will target every single element on the page.

Observables Knockout is built around three core features: Observables and dependency tracking Declarative bindings Templating On this page, you’ll learn about the first of these three. But before that, let’s examine the MVVM pattern and the concept of a view model. Model-View-View Model (MVVM) is a design pattern for building user interfaces. Mobile app Apps on Nexus 4 A mobile app is a computer program designed to run on smartphones, tablet computers and other mobile devices. The term "app" is a shortening of the term "application software". It has become very popular and in 2010 was listed as "Word of the Year" by the American Dialect Society.[2] In 2009, technology columnist David Pogue said that newer smartphones could be nicknamed "app phones" to distinguish them from earlier less-sophisticated smartphones.[3] Mobile apps were originally offered for general productivity and information retrieval, including email, calendar, contacts, and stock market and weather information. However, public demand and the availability of developer tools drove rapid expansion into other categories, such as mobile games, factory automation, GPS and location-based services, banking, order-tracking, ticket purchases and recently mobile medical apps.

notes: Want Scalable Application Architecture? Check AngularJS. The Scalable JavaScript Application Architecture is a presentation by Nicholas Zakas where he suggests a flexible and scalable architecture for JavaScript applications. Here are other related resources: The presentation is interesting but it also leaves many open questions. In short, the architecture contains following application layers: base library (jquery, etc)application core: manages modules (register modules, tell when to start and when to stop)handle errors (like wrap all modules' methods into try/catch and log errors)enable inter-module communicationshould be extensible (error handling, ajax wrapper, general utilites, anything!) Here are some questions raised by the presentation:

Test Life Cycle / Software Testing models This page contains a brief description on the Life Cycle and the different Testing Models. The software development life cycle (SDLC) is a conceptual model used in project management that describes the stages involved in an information system development project, from an initial feasibility study through maintenance of the completed application/product. Phases of SDLC A re-introduction to JavaScript IntroductionEdit Why a re-introduction? Because JavaScript is notorious for being the world's most misunderstood programming language.

Understanding the Publish/Subscribe Pattern for Greater JavaScript Scalability Design patterns are an invaluable tool for modern JavaScript developers, providing us with generalized reusable solutions to commonly occurring problems in application design that we can apply to our own problems. In addition, they provide the community with a common vocabulary we can use to discuss our designs, which can often be a non-trivial process. Today, we'll be exploring a design pattern so common to JavaScript development, you've probably used it before, whether you were aware of it or not. It's called the Observer pattern and is often referred to and implemented nowadays as the publisher/subscriber (pub/sub) pattern. The Observer (Pub/Sub) pattern The general idea behind the Observer pattern is the promotion of loose coupling (or decoupling as it's also referred as).

Related:  JavascriptLecturasTutorial & Guides