vim, git, aws and other three-letter words

Software Development 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 the 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 built upon this idea. And here is the list (descriptions are taken from their sites):

Presence of the AngularJS here can be unexpected and reasons why I included it are below. Others are directly built on the idea from Nicholas' presentation and the 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 is AngularJS 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 many 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.

Update: Toptal has reached out to me asking to link their article and I think it is quite useful not only when you need to hire someone, but also when learning or refreshing angular knowledge, so here it is: How to Hire a Great AngularJS Developer.

Tags: js