Organization, Dependency and Lifecycle Management Angular provides the concept of organizing code using a Module.One can think of a module as a container for the different parts of your app – controllers, services, filters, directives, etc. Modules specify how an application should be bootstrapped. It has a declarative process easy to understand and promotes reuse.To manage the responsibility of dependency creation, each Angular application has an injector. The injector is a service locator that is responsible for construction and lookup of dependencies.
Separation of Concerns At the core of Angular are constructs for implementing Template based views, Controllers and data Models. The framework uses the concept of ‘scope’ per controller bound to an HTML element in DOM, and takes care of two-way data binding between the UI and the ‘scope’. Developer handle changes to scope within controllers and update their models appropriately.
Extensibility There are several ways to extend angular and use its features to do work for you. One option is to use specialized objects called directives that help build web components. Another option is to implement *providers”. Custom directives are a powerful feature of Angular and eases code reuse.
Testability Angular provides Protractor, an end to end test runner which simulates user interactions that will help one verify the health of Angular applications. Protractor along with ‘DI’ based testable code enhances the quality of apps
If all you need is just a simple app implementing MVC (read TodoMVC) that needs to be fast there are many frameworks that fit the bill and Angular may not be the recommended option. But if you have a large and complex codebase that requires better organization, testability, extensibility, dependency management, and separation of concerns in the form of MVC, then a framework such a Angular is the best bet. Above all in Angular as these larger concerns are part of the framework construct, as our code base grows to large sizes, it allows us maintain our sanity !!