Evolving towards a scalable architecture with Angular
At the beginning of March 2018, Softescu took part in ngVikings 2018, in Helsinki, Finland. One of the most prestigious Angular event, this edition of ngVikings gathered around 330 attendees and 48 international speakers. Needless to say that the focus of this amazing event is Angular and its evolution as a Framework.
Angular develops with large steps and is much more popular than AngularJS. As a result from version 2 to the present, the number of programmers using this framework has increased dramatically. More and more developers are creating applications with Angular than with AngularJS.
To find out more, also read:
These applications are more complex and are performing better. At the moment, the stable version (that we are also using) is Angular 5.2. Just to make a clear image, Angular 5.2 has the improvements compared to previous versions:
- Code Reduction: a lot of code reduction was made so that the size of the applications and the "bundles" to be smaller
- Speed / Startup: as a result of the code reduction, bootstrap applications are faster than previous applications
- Polyfill Cleanup: polyfills are no longer required to reduce the size of the application
- Http Modules: several features have been implemented
- Aot by Default: compiling Aot is set as default to ng CLI
There are some other improvements that we may address in a future article.
Soon, we will be having the 6th version of Angular (Angular 6 that is). This version comes with a promise of performing even better, due to easier debugging, faster lazy loading and other improvements.
Maybe the most important change is the refactoring of the core that has fundamentally altered the size of new applications. In version 5, a CLI generated App downloads a few Mb (about 7 Mb). In version 6+ it downloads a few kb (about 10), which shows a significant and incredible change in performance.
It seems that the development direction of this framework focuses on performance. However, besides this point, there is a lot of emphasis on quality and stability, which are key-aspects for Angular. Angular’s Scalable Architecture backend the aspects of quality and stability.
The architecture is the skeleton of the application, and in this case, it implies dividing functionalities into smaller interdependent functions. While creating the architecture, important decisions need to be taken...decisions that can hardly be modified along the way.
Several challenges and pitfalls appear during the development of an application.
Some of the most common are:
- Increasing the App’s complexity
- Increasing the number of requests
- Increased data loaded in the application
- Growing the development team
- A decrease in App’s performance
To better understand, also read: Monolithic vs scalable Angular architectures