2013-03-18

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:

Here are some questions raised by the presentation:

Of course good answers can be found for all these points and more questions can be raised. It is clear that the suggested architecture is an idea and the way to go but not a complete design. It was interesting to see if there are frameworks build upon this idea. And here is the list (descriptions are taken from their sites):

Presence of the AngualrJS here can be unexpected and reasons why I included it are below. Others are directly built on the idea from Nicholas' presentation and most popular of them (looking at the number of stars on the github) is Aura. Here are todo application examples built on Aura.

So why AngularJS is here? Actually I do not have much experience with it, but from what I know it looks very close to the Nicholas' Scalable Architecture:

Besides the main parts of the scalable architecture AngularJS has more. For example, along with the sandbox (scope) we can pass additional services to the controller (like $http for ajax requests). So the sandbox does not turn into a God-object with too much responsibilities.

And angular controllers are very similar to scalable architecture modules:

This way the idea of the scalable architecture is present in the AngularJS. And angular also gives other essential components (views, models, services, etc) and provides complete and ready to use architecture.

profile for Boris Serebrov on Stack Exchange, a network of free, community-driven Q&A sites