Today I watched a youtube video https://www.youtube.com/watch?v=vXjVFPosQHw on Scalable Javascript Application Architecture and I really like how simply author have explained the concept of architecture.
After watching that video I am thinking of making small-2 changes in my javascript code to improve quality of software.
I am using Angular 1 in my application. Since watching that video I am trying to fit angular in that stack..
Below is my understanding for the same.
Unlike other libraries like jQuery, YUI or DOJO, keeping angular in Base Libraries category won't be correct, as Angular is not just a bunch of utility functions to make ones life easy. It is much more than that, it is a complete MV* solution with many other utility functions like $http, $timeout services...
Second place where I though one can keep Angular is Module. We can create different-2 modules in angular and then write our own code to implement Sandbox and Application Core. And make Module code make use of Sandbox. But keeping Angular here is again not correct as Modules will tightly depend on third party tool (Angular in this case), which should be avoided as per the video.
Third place: (http://serebrov.github.io/html/2013-03-18-js-scalable-architecture.html)
base library - jQuery or angular's own jqLite implementation
app core - angular itself
sandbox - scope passed to the controller
module - angular's controller
But I am not convinced with the above definition. fact that module is angular's controller, scope is sandbox are not really convincing to me.
I am unable to find a place for angular in that stack, because the moment you start using Angular in your code you really start thinking in terms of MVC, not in terms of sandbox, base library, application core. Also if you are using angular in your code, then you are pretty much saying that I am not gonna replace Angular with some other MVC framework.
Question 1: Does Angular fit in that stack?
Question 2: If Yes, then where?